帕斯卡微架構(),是由英伟达公司(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 的设计。
- GP100 架构改进:
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 的驱动程序中安全地启用了异步计算。
指令级和线程级抢占**。
- GP104 架构改进:
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。
- 流式多处理器"Pascal":
** "流式多处理器"(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) 着色器处理器。
Pascal*(取决于型号):
* 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)
关于双精度和半精度的理论处理性能:
- GP100:
双精度性能为单精度性能的 1/2**。
半精度性能为单精度性能的 2 倍**。
- 其他型号 (GP102, GP104, GP106, GP107, GP108):
双精度性能为单精度性能的 1/32**。
半精度性能为单精度性能的 1/64**。
後繼者
圖靈微架構和伏打微架構
参考文献
评论 (0)