4090 Ada Lovelace架构,关于AI部分的介绍

本文主要说下NVIDIA GeForce RTX 4090以及Ada Lovelace架构的特点。

在GTC 2022首发的Ada Lovelace架构产品一共包含三款,分别是GeForce RTX 4090的AD102,GeForce RTX 4080 16GB的AD103,以及GeForce RTX 4080 12GB的AD104。不过GeForce RTX 4090使用的AD102也并非完整形态。

4090使用的是残血阉割16384cuda内核的AD102-300核心,16MB L1 Cache,72MB L2 Cache,也吊打3090TI了。

注意区分Ada Lovelace和Hopper,这俩计算能力一个8.9一个9.0。Hopper是数据卡,是专门的计算卡,数据中心用的,购买的话会有专门的NVIDIA技术人员支持;而Ada Lovelace是游戏卡或者图像卡,干专业图形处理的活,一般就是个人买的多一些

AD102

完整的AD102包含了12个图形处理集群(Graphics Processing Clusters,GPC),72个纹理处理簇(Texture Processing Clusters,TPC),144个流式多处理器(Streaming Multiprocessors,SM),以及搭配了12个32-bit控制器的显存接口,共计384-bit。

NVIDIA利用台积电4N定制工艺和改良的电路设计进一步扩大了芯片规模,完整的AD102核心拥有763亿个晶体管和18432个CUDA核心构成,运行时钟频率可以达到2.5GHz以上。在进行部分取舍之后,量产成行的GeForce RTX 4090的TGP功耗与GeForce RTX 3090 Ti相当,但效率翻了数倍。

从Turing架构开始至今,GPC、TPC、SM的包含层级没有做出变化。

The full AD102 GPU includes:

  • 18432 CUDA Cores
  • 144 RT Cores
  • 576 Tensor Cores
  • 576 Texture Units

SM架构

AD10x GPU 中的每个 SM 包含 128 个 CUDA Core、一个 Ada 第三代 RT Core、四个 Ada 第四代 Tensor Core、四个纹理单元、一个 256 KB 的寄存器文件,以及 128 KB 的 L1/共享内存,这些内存可以根据图形或计算工作负载的需求配置不同的内存大小。

与之前的 GPU 类似,AD10x SM 被划分为四个处理块(或分区),每个分区包含一个 64 KB 的寄存器文件、一个 L0 指令缓存、一个 Warp 调度器、一个分发单元、16 个专用于处理 FP32 操作的 CUDA Core(每时钟周期最多 16 个 FP32 操作)、16 个可处理 FP32 或 INT32 操作的 CUDA Core(每时钟周期 16 个 FP32 操作或 16 个 INT32 操作)、一个 Ada 第四代 Tensor Core、四个 Load/Store 单元,以及一个特殊功能单元 (SFU),用于执行超越函数和图形插值指令(transcendental and graphics interpolation instructions)。

对于GA102来说, each GA10x SM partition is capable of executing either 32 FP32 operations per clock, or 16 FP32 and 16 INT32 operations per clock. All four SM partitions combined can execute 128 FP32 operations per clock, which is double the FP32 rate of the Turing SM, or 64 FP32 and 64 INT32 operations per clock
从Ampere开始,nv的架构就是用int32/fp32+fp32替代原本的int+fp单元,ada也一样

Memory Subsystem

Ada SM 包含 128 KB 的一级缓存 (Level 1 cache)。这个缓存具有统一的架构,可以根据工作负载配置为 L1 数据缓存或共享内存。完整的 AD102 GPU 包含 18432 KB 的 L1 缓存(相比于 GA102 的 10752 KB)。

与 Ampere 相比,Ada 的二级缓存 (Level 2 cache) 已经完全改进。AD102 配备了 98304 KB 的 L2 缓存,比 GA102 中的 6144 KB 提升了 16 倍。所有应用程序都将受益于这么大的快速缓存内存池,特别是如光线追踪(尤其是路径追踪)这样的复杂操作,将获得最大的好处。

GeForce RTX 4080 配备了 22.4 Gbps 的 GDDR6X 内存;这是任何基于 GDDR 内存的 GPU 中最高的速度,而 GeForce RTX 4090 提供了 1 TB/sec 的峰值内存带宽。

4N Manufacturing Process and Power Efficiency

Ada GPU 是在 TSMC 的 4N 制造工艺上制造的。NVIDIA 工程师与 TSMC 密切合作,优化了该工艺以适应 GPU 生产。使用 4N 工艺使 NVIDIA 能够集成更多的核心:AD102 比前一代 GA102 GPU 多出 70% 的 CUDA Core。总的来说,AD102 GPU 包含了 76.3 亿个晶体管,使其成为有史以来最复杂的芯片之一。

Ada 还以更高时钟频率运行。NVIDIA 优化了 GPU 的设计,使用高速晶体管处理关键路径,否则可能限制芯片的其他部分。在 GPU Boost 时钟频率为 2.52 GHz 下运行,GeForce RTX 4090 拥有所有 NVIDIA GPU 中最高的时钟频率。

与此同时,RTX 4090 的高时钟速度和核心数量提供了最高的性能/每瓦特(the highest
performance per watt)。在与 RTX 3090 Ti 相同的功率下运行时,RTX 4090 GPU 的性能提高了 2 倍以上。

这也是为什么4090的FP32 TFLOPS是3090ti性能两倍多一点的原因,一个是cuda core多了,另一个是频率上来了

Ada Fourth-Generation Tensor Core

第四代Tensor Core!

Tensor Core想必都比较熟悉了,是专门为 AI 和高性能计算 (HPC) 应用中使用的矩阵乘法和累加运算量身定制的高性能计算核心。Tensor Core 为深度学习神经网络训练和在边缘发生的推理功能所至关重要的矩阵计算提供了突破性的性能。

与 Ampere 相比,Ada 在 FP16、BF16、TF32、INT8 和 INT4 Tensor TFLOPS 上提供了两倍以上的性能,并且还包括了 Hopper FP8 Transformer Engine,在 RTX 4090 中提供了超过 1.3 PetaFLOPS 的Tensor处理能力。

第四代 Tensor Core(H100的,部分特性4090没有):

  • 相比于 A100,H100的每个 SM 的速度快了、然后又额外的 SM 数量和更高的时钟频率
  • 每个 SM 的 Tensor Core 在相同数据类型上提供的 MMA(矩阵乘法-累加)计算速率是 A100 SM 的 2 倍,使用新的 FP8 数据类型时,则是 A100 的 4 倍(与之前FP16比)
  • 稀疏特性利用深度学习网络中的细粒度结构化稀疏性,使标准 Tensor Core 操作的性能翻倍。
  • 新的 DPX 指令加速动态编程算法,与 A100 GPU 相比,性能提升高达 7 倍。两个例子包括用于基因组处理的 Smith-Waterman 算法,以及用于找到通过动态仓库环境的机器人车队的最佳路径的 Floyd-Warshall 算法
  • 与 A100 相比,IEEE FP64 和 FP32 处理速率提升 3 倍,这得益于每个 SM 的时钟性能提升 2 倍,加上 H100 的额外 SM 数量和更高的时钟
  • 256 KB 的组合共享内存和 L1 数据缓存,比 A100 大 1.33 倍。
  • 新的异步执行功能包括一个新的 Tensor Memory Accelerator (TMA) 单元,它可以高效地在全局内存和共享内存之间传输大块数据。TMA 还支持集群中线程块之间的异步复制。还有一个新的异步事务屏障,用于执行原子数据移动和同步(新的 Tensor Core 具有更高效的数据管理,节省高达 30% 的操作数传输功耗。)
  • 新的 Thread Block Cluster 特性暴露了跨多个 SM 的局部性控制
  • 分布式共享内存允许直接 SM 到 SM 的通信,用于跨多个 SM 共享内存块的加载、存储和原子操作。

数据类型砍了INT4和INT1:

总价下4090的Tensor Core更新,就是速度快了一倍,然后因为Tensor core也多了,性能也就强了,也加了FP8精度的支持。

更多细节参考:

与3090相比

NVIDIA 的 AD102 GPU 包含 18,432 个 CUDA Core(比 Ampere 多 70%),18 MB 的 L1 缓存,96 MB 的 L2 缓存(比 Ampere 多 16 倍),以及36 MB的寄存器。整个 GPU 包含超过 76 亿个晶体管,仅次于 NVIDIA 的 H100,在 GPU 复杂性方面排名第二。尽管 GeForce RTX 4090 的 Boost Clock 频率为 2.5 GHz——比之前的 GeForce 旗舰 RTX 3090 Ti 高 660 MHz——但它的总图形功率 (TGP) 仍为 450W。Ada 最终实现了与上一代 Ampere 相比 2 倍更高的能效。这确实是一项工程奇迹。

Ada GPU 包括新的第四代 Tensor Core。GeForce RTX 4090 为现有的 FP16、BF16、TF32 和 INT8 格式提供了双倍的吞吐量,其第四代 Tensor Core 还引入了对新的 FP8 张量格式的支持。与 FP16 相比,FP8 将数据存储要求减半,并将吞吐量加倍。使用新的 FP8 格式,GeForce RTX 4090 为 AI 推理工作负载提供了 1.3 PetaFLOPS 的性能。

与H100相比

H100是Hopper架构,Hopper相比Ada多了一个比较重要的特性TMA以及其他特性(这里不详细说了):

Hopper 架构提供了一个 Tensor Memory Accelerator (TMA),支持双向异步内存传输,即从共享内存到全局内存的传输。在 TMA 下,应用程序可以传输高达 5D 的张量。从共享内存写入到全局内存时,可以使用逐元素减法和位操作符,避免使用寄存器和 SM 指令,同时使用户能够编写专门针对 warp 的代码。TMA 通过 cuda::memcpy_async 暴露出来。

TMA 的一个关键优势是它可以在进行数据复制的时候,释放线程的算力来执行其他工作。例如,在 A100上,由线程本身负责生成所有地址执行所有数据复制操作。

其他特性这里不说了,可以看白皮书:

虽然H100、L40S、4090都被禁了,但是有公司库存还可以用,研究研究。

参考

One of the key design goals for the Ampere 30-series SM was to achieve twice the throughput for FP32 operations compared to the Turing SM. To accomplish this goal, the Ampere SM includes new datapath designs for FP32 and INT32 operations. One datapath in each partition consists of 16 FP32 CUDA Cores capable of executing 16 FP32 operations per clock. Another datapath consists of both 16 FP32 CUDA Cores and 16 INT32 Cores. As a result of this new design, each Ampere SM partition is capable of executing either 32 FP32 operations per clock, or 16 FP32 and 16 INT32 operations per clock. All four SM partitions combined can execute 128 FP32 operations per clock, which is double the FP32 rate of the Turing SM, or 64 FP32 and 64 INT32 operations per clock