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)
- 前任：麦斯维尔
- 继任：图灵（消费）、伏打（专业）