GPU到底有多快?

HPC沿Nvidia CUDA-GPU架构走 。从零到如今 。
GPU到底有多快?文章插图
> Photo by Rafael Pol on Unsplash
有人将机器学习定义为数学(算法) , 工程学(高性能计算)和人类能力(经验)之间的完美融合 。因此 , 这些领域中的任何进展都将有助于机器学习的发展 。今天是HPC的转折点 , 特别是我们在谈论GPU的进步 。
Nvidia刚刚宣布了基于Ampere架构的Geforce RTX 30系列(RTX3090 , RTX3080 , RTX3070) 。Ampere是我们最喜欢的GPU品牌的最新架构 , 但是到目前为止已经发布了几代具有CUDA功能的GPU 。在以下各段中 , 我将描述从今天开始到今天的CUDA架构的全球概述 , 让我们一起推动一条有趣的路 , 从费米到安培 。但是 , 在不进一步了解细节之前 , 强烈建议您访问以前关于CUDA执行模型的文章 , 如果您不熟悉GPU计算的话 。
遵循Nvidia GPU的自然发展时间表 , 该公司于2001年首次生产了能够进行可编程着色的芯片GeForce 3 , 该芯片被Playstation 2和Xbox所使用 。在GeForce 3(代号NV20)之前 , 还有其他一些产品:NV1(1995) , NV3(1997) , NV4(1998) , NV5(1999) , GeForce I(1999年末)和GeForce II(2000) 。但是 , GeForce 3可能是第一个流行的Nvidia GPU 。
指出Nvidia世界中目标类别和体系结构之间的差异很有趣 , 这可能会使读者感到困惑 。传统上 , Nvidia为每种目标客户类别设计不同类型的产品 , 并命名为四个不同的产品:GeForce , Quadro , Tesla和(最近)Jetson 。尽管内部使用的底层体系结构对于这四个产品都是相同的 。用Nvidia话来说 , 它们四个具有相同的计算能力 。GeForce系列产品主要针对台式机和游戏玩家 。Quadro被认为是创建视频内容的工作站和开发人员的工具; 而Tesla是为超级计算机和HPC设计的 。最后 , Jetson系列包含芯片中的嵌入式GPU 。
正如我们在上面看到的那样 , Nvidia在90年代初就开始了冒险 , 其GPU专注于grapichs , 但是我们一直等到2007年才使用第一个CUDA架构:Tesla(是的 , 您是对的 , 他们使用相同的架构名称 稍后是一条产品线 , 这就是为什么我说这可能会造成混淆) 。Tesla是一个非常简单的体系结构 , 因此我决定直接从Fermi开始 , 它引入了Error-Correcting Code内存 , 确实改善了上下文切换 , 内存层次结构和双精度 。
费米架构每个Fermi流多处理器(SMI)均由32个CUDA内核(流处理器) , 16个加载/存储单元(LD / ST单元)组成 , 每个时钟可处理16个线程的内存操作 , 并具有4个特殊功能单元(SFU)以执行超越数学 指令 , 内存层次结构和翘曲调度程序 。
GPU到底有多快?文章插图
> Fermi Streaming Multiprocessor (Image by author)
该板有6个64位内存分区和384位内存接口 , 最多可支持6 GB的GDDR5 DRAM内存 。CPU通过PCI-e总线连接到GPU 。每个CUDA内核都有一个完整的流水线算术逻辑单元(ALU)和一个浮点单元(FPU) 。为了执行双精度 , 32个CUDA内核可以用作16个FP64单元 。每个SM具有两个warp调度程序 , 这些调度程序可启用发布并同时执行2个warp 。
该体系结构的关键模块是内存层次结构 。 它引入了64 KB的可配置共享内存和每个SM的L1缓存 , 可以将其配置为16 KB的L1缓存和48 KB的共享内存 。 或16 KB共享内存和48 KB L1缓存 。 尽管CPU L1缓存是针对空间和时间局部性而设计的 , 但GPU L1仅针对空间局部性进行了优化 。 频繁访问缓存的L1内存位置不会增加命中数据的可能性 , 但是当多个线程正在访问相邻的内存空间时 , 这很有吸引力 。768 KB L2缓存是统一的 , 并在为所有操作(加载 , 存储和纹理)提供服务的所有SM之间共享 。 这两个缓存均用于将数据存储在本地和全局内存中 , 包括寄存器溢出 。 但是 , 必须配置是在L1和L2中还是仅在L2中缓存读取 。 此体系结构表示为计算能力2.x , 这是Nvidia的特殊术语 , 用于描述GPU的硬件版本 , 该硬件版本包括主修订号(左数字)和次修订号(右数字) 。 具有相同主要修订版本号的设备属于相同的核心体系结构 , 而次要修订版本号对应于对核心体系结构的增量改进 。