Pascal (微架構)

帕斯卡微架構（Pascal microarchitecture），是由英偉達公司（NVIDIA）所開發的一種GPU微架構，用以取代麥斯維爾微架構（Maxwell microarchitecture）。該架構於2016年4月首次推出，伴隨著2016年4月5日Tesla P100 (GP100) 的發布而問世，並主要用於 GeForce 10 系列顯卡，從2016年5月27日發布的 GeForce GTX 1080 和6月10日發布的 GTX 1070（兩者均使用 GP104 GPU）開始。Pascal 架構採用台積電 (TSMC) 的 16 nm FinFET 工藝製造，隨後也採用了三星 (Samsung) 的 14 nm FinFET 工藝。

該微架構以法國數學家和物理學家布萊斯·帕斯卡（Blaise Pascal）的名字命名。

2019年4月，NVIDIA在基於Pascal架構的顯卡上啟用了DirectX光線追蹤的軟體實現，起始型號為GTX 1060 6GB；而在16系列顯卡中，這一功能此前是專為Turing架構的RTX系列所保留的特性。

## 架構細節

- NVIDIA 於 2014 年 3 月宣布 Maxwell 的繼任者將是 Pascal 微架構；該架構於 2016 年 5 月 6 日宣布，並於同年 5 月 27 日發布。
- Tesla P100 (GP100 晶片) 使用的 Pascal 架構版本與 GTX GPU (GP104 晶片) 不同。GP104 中的著色器單元採用了類似 Maxwell 的設計。
- SM (流式多處理器) 結構變化：在 Pascal 中，每個 SM 包含 64-128 個 CUDA 核心（取決於是否為 GP100 或 GP104）。Maxwell 每個 SM 有 128 個核心；Kepler 為 192 個；Fermi 為 32 個；Tesla 為 8 個。GP100 的 SM 被劃分為兩個處理塊，每個塊包含：
- 32 個單精度 CUDA 核心
- 一個指令緩衝區
- 一個 Warp 調度器
- 2 個紋理映射單元
- 2 個分發單元 (Dispatch units)
- CUDA Compute Capability 6.0。
- HBM2：部分顯卡配備 16 GiB HBM2，分為四堆棧，總線寬度總計 4096 bit，記憶體帶寬高達 720 GB/s。
- 統一記憶體 (Unified Memory)：一種記憶體架構，CPU 和 GPU 在「頁面遷移引擎」 (Page Migration Engine) 技術的幫助下，可以同時訪問主系統記憶體和顯卡上的顯存。
- NVLink：CPU 與 GPU 之間以及多個 GPU 之間的高速帶寬總線。其傳輸速度遠高於 PCIe；估計可提供 80 至 200 GB/s 的吞吐量。
- 16 位 (FP16) 浮點運算（俗稱「半精度」）：執行速率是 32 位浮點運算（「單精度」）的兩倍；而 64 位浮點運算（「雙精度」）的執行速率則是 32 位的一半。
- 更多寄存器：每個 CUDA 核心的寄存器數量是 Maxwell 的兩倍。
- 更多共享內存。
- 動態負載均衡調度系統：允許調度器動態調整分配給多個任務的 GPU 資源量，確保 GPU 始終有工作負載（除非沒有更多可以安全分發的任務）。因此，NVIDIA 在 Pascal 的驅動程序中安全地啟用了異步計算。
- 指令級和線程級搶占。
- CUDA Compute Capability 6.1。
- GDDR5X：新的記憶體標準，支持 10 Gbit/s 的數據速率，並更新了記憶體控制器。
- 同時多投影 (Simultaneous Multi-Projection)：在幾何流進入 SMP 引擎的上游著色器階段時，生成單個幾何流的多個投影。
- DisplayPort 1.4 和 HDMI 2.0b。
- 第四代 Delta Color Compression。
- 增強的 SLI 接口：相比上一版本具有更高帶寬的 SLI 接口。
- PureVideo Feature Set H 硬體影片解碼：支持 HEVC Main10 (10-bit)、Main12 (12-bit) 和 VP9 的硬體解碼。
- HDCP 2.2 支持：用於播放和流式傳輸 4K DRM 保護內容（Maxwell GM200 和 GM204 缺乏 HDCP 2.2 支持，GM206 支持 HDCP 2.2）。
- NVENC HEVC Main10 10bit 硬體編碼。
- GPU Boost 3.0。
- 指令級搶占：在圖形任務中，驅動程序將搶占限制在像素級別，因為像素任務通常完成得很快，且執行像素級搶占的開銷成本低於指令級搶占（後者成本高昂）。計算任務則獲得線程級或指令級搶占，因為它們可能需要更長時間才能完成，且無法保證何時結束。因此，驅動程序為這些任務啟用了昂貴的指令級搶占。

## 概述

- 圖形處理器集群 (Graphics Processor Cluster)：晶片被劃分為圖形處理器集群（GPC）。對於 GP104 晶片，一個 GPC 包含 5 個 SM。
- "流式多處理器"（SM）類似於 AMD 的計算單元（Compute Unit）。
- 在 GP104 晶片上，一個 SM 包含 128 個單精度 ALU（即"CUDA 核心」）；而在 GP100 晶片上則為 64 個。
- 儘管所有計算單元版本都由 64 個著色器處理器組成（即 4 個 SIMD 向量單元，每個寬 16 通道），但 NVIDIA 嘗試了不同數量的 CUDA 核心：
- Tesla：1 個 SM 組合 8 個單精度 (FP32) 著色器處理器。
- Fermi：1 個 SM 組合 32 個單精度 (FP32) 著色器處理器。
- Kepler：1 個 SM 組合 192 個單精度 (FP32) 著色器處理器和 64 個雙精度 (FP64) 單元（在 GK110 GPU 上）。
- Maxwell：1 個 SM 組合 128 個單精度 (FP32) 著色器處理器。
- GP100：1 個 SM 組合 64 個單精度 (FP32) 著色器處理器，同時也包含 32 個雙精度 (FP64)，提供 2:1 的單精度與雙精度吞吐量比。GP100 使用更靈活的 FP32 核心，能夠處理一個單精度數或兩個半精度數以兩元素向量形式進行處理。這旨在更好地服務於機器學習任務。
- GP104：1 個 SM 組合 128 個單精度 ALU、4 個雙精度 ALU（提供 32:1 的比率），以及一個半精度 ALU，該單元包含兩個半精度浮點數的向量，可以對這兩個浮點數執行相同的指令；如果同一指令用於兩個元素，則提供 64:1 的比率。
- 多形態引擎 4.0 (Polymorph-Engine 4.0)：負責光柵化（Tessellation）的多形態引擎版本 4.0。它在功能上對應於 AMD 的幾何處理器。它已從著色器模塊移至 TPC，以便一個多形態引擎可以為 TPC 內的多個 SM 提供數據。

晶片型號與應用

- GP100：NVIDIA Tesla P100 GPU 加速器針對 GPGPU 應用，如 FP64 雙精度計算和需要使用 FP16 的深度學習訓練。它使用 HBM2 記憶體。Quadro GP100 也使用 GP100 GPU。
- GP102：此 GPU 用於 Titan Xp、Titan X Pascal和 GeForce GTX 1080 Ti。它也用於Quadro P6000和Tesla P40。
- GP104：此 GPU 用於 GeForce GTX 1070、GTX 1070 Ti、GTX 1080 以及部分 GTX 1060 6GB 版本。GTX 1070 啟用了 15/20 個 SM，GTX 1070 Ti 啟用了 19/20 個 SM；兩者均使用 GDDR5 記憶體。GTX 1080 是完整晶片，並使用 GDDR5X 記憶體。部分 GTX 1060 6GB 版本使用 GP104（啟用 10/20 個 SM）並配備 GDDR5X 記憶體。它也用於 Quadro P5000、Quadro P4000、Quadro P3200（移動應用）和 Tesla P4。
- GP106：此 GPU 用於配備 GDDR5 記憶體的 GeForce GTX 1060。它也用於 Quadro P2000。
- GP107：此 GPU 用於 GeForce GTX 1050 和 1050 Ti。它也用於 Quadro P1000、Quadro P600、Quadro P620 和 Quadro P400。
- GP108：此 GPU 用於 GeForce GT 1010 和 GeForce GT 1030。

## 性能指標

Pascal GPU 的理論單精度處理性能（以 GFLOPS 為單位）計算公式如下：

`理论单精度性能` `= 2 × (每周期每个 CUDA 核心的 FMA 指令操作数) × (CUDA 核心数量) × (核心时钟速度，单位 GHz)`

關於雙精度和半精度的理論處理性能：

- 雙精度性能為單精度性能的 1/2。
- 半精度性能為單精度性能的 2 倍。
- 其他型號 (GP102, GP104, GP106, GP107, GP108)：
- 雙精度性能為單精度性能的 1/32。
- 半精度性能為單精度性能的 1/64。

## 後繼者

圖靈微架構和伏打微架構

## 基本資料

- 日語原文：Nvidia Pascal
- 發布日期：2016年4月5日
- 製造工藝：台積電 16 nm (FinFET)、三星 14 nm (FinFET)
- 前任：麥斯維爾
- 繼任：圖靈（消費）、伏打（專業）