背景
Ada lovelace(后面简称Ada)是NVIDIA最新的图形处理器架构,随2022年9月20日发布的RTX 4090一起公布。本节对RTX 4090以及Ada架构及其新特性先做一个全面的梳理。性能分析部分处理器参照物主要是Hopper架构的GH100和Ampere架构的GA100/GA102,GPU参照物主要是H100(GH100)和A100(GA100)或3090 Ti(GA102)。
Ada架构
跟Hopper架构的GH100一样,Ada架构的AD102也采用了台积电的4nm N4工艺制程,这使得AD102得以集成高达763亿个晶体管,同时可以获得更高的频率,GPU Boost Clock高达2.52GHz,使得搭载AD102的RTX 4090成为目前频率最高的NVIDIA GPU。
AD102搭载了新的第四代Tensor Core,低精度数据类型上,跟GH100一样,新增支持业界首创的FP8数据类型,支持INT8,但Ada增加了Hopper上去掉的INT4;高精度数据类型上,支持BF16数据类型,支持TF32数据类型,但Ada去掉了FP64的TensorCore支持。同样,Ada架构每个SM张量核在等效数据类型上提供Ampere架构 SM的2倍MMA(矩阵乘法累加)计算速率。针对深度学习领域,同样提供稀疏神经网络的硬件加速支持,标准张量核心操作性能翻倍。
得益于每个SM 的CUDA core性能提升2倍(相比Ampere数量翻倍)以及更多的SM数量,IEEE FP32的性能相比GA102也提升了近3倍。
Ada架构芯片搭载了新的第三代RT Core(Turing架构首次引入RT Core,可实现硬件加速的实时光线追踪渲染。),
每个SM的组合共享内存和L1数据缓存为128KB,整个AD102的L1数据缓存可达18432KB。
显存带宽为1TB/s的GDDR6X。
支持PCIe GEN4(双向带宽64GB/s)。
SM架构
Ada SM架构最重要的是搭载了第四代Tensor Core和新的第三代RT Core。
架构总览
Ada完整的AD102芯片架构如下图所示:
配置如下:
●12 GPCs, 72 TPCs(6 TPCs/GPC), 2 SMs/TPC, 12 SMs/GPC, 144 SMs per full GPU
●128 FP32 CUDA Cores/SM, 18432 FP32 CUDA Cores per full GPU
●4 forth-generation Tensor Cores/SM, 576 forth-generation Tensor Cores per full GPU
●GDDR6X, 384-bit memory interface with 12 32-bit memory controllers
● 288 FP64 Cores(2 per SM),1/64th TFLOP rate of FP32
RTX 4090有一些裁剪,配置如下:
●11 GPCs, 64 TPCs, 2 SMs/TPC, 128 SMs
● 128 FP32 CUDA Cores/SM, 16384 FP32 CUDA Cores per GPU
● 4 forth-generation Tensor Cores/SM, 512 forth-generation Tensor Cores per full GPU
●5 HBM2 stacks, 10 512-bit memory controllers
●GDDR6X, 384-bit memory interface with 12 32-bit memory controller
GPC结构如果下图所示:
Ada架构每个GPC包含1个Raster Engine(光栅化引擎),6个TPC,12个SM,16个ROP(8 per ROP partition)。
Ada架构每个 TPC 包含2个 SM,每个 SM 包含 128 个 FP32 CUDA核心和 64 个 INT32 CUDA核心(FP32是Ampere的2倍,INT32不变)、2个FP64 CUDA核心(满足少量需要高精度的运算类型)、4个第四代Tensor核心、1个第三代RT核心。相比定位于数据中心计算的Hopper ,侧重于图形计算的Ada架构FP64核心数量大幅减少(上图因为数量太少并未画出),增加了一个RT核心。
如图所示,Ada SM 划分为4个处理块,每个处理块均包含32 个 FP32 CUDA核心、 16 个 INT32 CUDA核心、1 个 Tensor 核心、 1 个线程束调度器和 1 个分配单元。每个处理块还具有一个L0 指令缓存和一个 16 KB 寄存器堆。这四个处理块共享一个L1指令缓存,以及一个组合式的128 KB L1 数据缓存或共享内存,是Hopper GA100的一半。整个AD102的L1缓存为18432KB,相比Ampere GA102的10752KB提升了70%。
第四代Tensor Core
Ada架构搭载的第四代Tensor Core,大部分特性跟Hopper架构一样,最重要的是引入了一个新的数据类型FP8。不同的是去掉了FP64的支持,增加了INT4的支持。
在Tensor Core性能上,AD102相比GH100,大概是1/3的水平,跟GA100接近,是GA102的2倍。相比Ampere架构主要是新增了FP8的支持。
L2缓存
AD102的L2缓存增大到了98304KB,是GA102(6144KB)的16倍。
更大的L2缓存使得HPC和AI应用可以将更多的数据缓存到L2,而不是放到显存上,从而获得更高的读写速度,比如小batch size的深度神经网络的计算。
GDDR6X显存
高达1TGB/s的24GB的GDDR6X显存,目前最高速的GDDR显存。
GPU Spec
RTX 4090是最新一代面向图形计算场景的GPU卡,我们将RTX 4090与上一代Ampere架构Tesla A100和RTX 3090 Ti的主要参数做了对比如下:
GPU Type |
RTX 4090 |
RTX 3090 Ti |
A100(SXM4-80G) |
GPU Architechture |
AD102(Ada Lovelace) |
GA102(Ampere) |
GA100(Ampere) |
GPCs(Graphics Processing Clusters) |
11 |
7 |
7 |
TPCs(Texture Processing Clusters) |
64 |
42 |
54 |
SMs(Streaming Multiprocessors ) |
128 |
84 |
108 |
FP32 CUDA Cores |
16384 |
10752 |
6912 |
INT32 CUDA Cores |
8192 |
5376 |
6912 |
FP64 CUDA Cores |
N/A |
N/A |
3456 |
Tensor Cores |
512 |
336 |
432 |
RT Cores |
128 |
84 |
N/A |
Geometry Units |
64 |
41 |
N/A |
TMUs(Texture Units) |
512 |
336 |
432 |
ROPs(Raster Operation Units) |
176 |
112 |
160 |
INT4(TOPS) |
1321.2/2642.4 |
640/1280 |
1248/2496 |
INT8(TOPS) |
660.6/1321.2 |
320/640 |
624/1248 |
INT32(TIPS) |
41.3 |
20 |
19.5 |
BF16(TFLOPS) |
82.6 |
40 |
39 |
FP16(TFLOPS) |
82.6 |
40 |
78 |
FP32(TFLOPS) |
82.6 |
40 |
19.5 |
FP64(TFLOPS) |
1.3 |
N/A |
9.7 |
Tensor Core FP8(TFLOPS) |
660.6/1321.2 |
N/A |
N/A |
Tensor Core FP16(TFLOPS) |
330/660 |
160/320 |
312/624 |
Tensor Core TF32(TFLOPS) |
82.6/165.2 |
40/80 |
156/312 |
Tensor Core FP64(TFLOPS) |
N/A |
N/A |
19.5 |
RTX-OPS(TOPS) |
191 |
78.1 |
N/A |
GPU Memory |
24 GB GDDR6X |
24 GB GDDR6X |
80 GB HBM2e |
Memory Clock(MHz) |
1325 |
1219 |
1593 |
Memory Interface Width |
384-bit |
384-bit |
5120-bit(10*512-bit) |
Memory Bandwidth(GB/s) |
1008 |
1008 |
2039 |
Interconnect Bandwidth(GB/s) |
PCIe Gen4:64 |
PCIe Gen4:64 |
NVLINK:600 |
Default Graphic Clock(MHz) |
2230 |
1395 |
1155 |
Max Graphic Clock(MHz) |
2520 |
1860 |
1410 |
Power(Watt) |
450 |
350 |
400 |
从Spec来看,使用新架构的RTX 4090相对于RTX 3090 Ti,CUDA Core、Tensor Core以及RT Core的性能均提升了2倍左右,显存容量和带宽并没有变化。而相比Tesla A100 ,Tensor Core性能是基本相当,略高5%。但是Tesla A100的显存带宽是RTX 4090的2倍,受限于显存带宽4090的算力发挥会受影响,推测小bs的AI任务RTX 4090会略有优势或者与A100接近,但是随着bs增大,Tesla A100的性能应该会更好,而且随着bs增大差距会拉大。
当然以上都是硬件的理论性能指标,那么RTX 4090的实际性能表现如何呢?下面通过一些实测数据来分析。
性能实测
我们测试了RTX 4090在图像分类、文本生成、图片生成这几个主要AI任务的训练和推理性能,并和Tesla A100做了相应对比。测试都是单卡,不考虑GPU间通信带宽对性能的影响。
从下面的测试结果来看,基本跟上面的分析差不多,RTX 4090算力略高于A100,但受限于显存带宽,实际小任务时性能与A100接近,大任务时A100优势更大。
图像分类(ResNet50)
图像分类测试的是TensorFlow ResNet50-v1.5 Training的性能:
TensorFlow ResNet50-v1.5 Training |
||||||||
GPU nums |
batch size per GPU |
precision |
variable_update |
local_parameter_device |
all_reduce_spec |
4090(images/sec) |
A100-80G(images/sec) |
A100/4090 |
1 |
64 |
fp16 |
parameter_server |
cpu |
None |
1324 |
1274.46 |
96.26% |
1 |
128 |
fp16 |
parameter_server |
cpu |
None |
1356.46 |
1783.25 |
131.46% |
1 |
64 |
fp16 |
parameter_server |
gpu |
None |
1614.9 |
1784.63 |
110.51% |
1 |
128 |
fp16 |
parameter_server |
gpu |
None |
1472.91 |
1978.99 |
134.36% |
1 |
64 |
fp16 |
replicated |
gpu |
None |
1592.49 |
1486.6 |
93.35% |
1 |
128 |
fp16 |
replicated |
gpu |
None |
1457.87 |
2012.65 |
138.05% |
1 |
64 |
fp16 |
replicated |
gpu |
pscpu |
1595.17 |
1627.92 |
102.05% |
1 |
128 |
fp16 |
replicated |
gpu |
pscpu |
1460.31 |
2004.91 |
137.29% |
1 |
64 |
fp16 |
replicated |
gpu |
nccl |
1589.09 |
1786.49 |
112.42% |
1 |
128 |
fp16 |
replicated |
gpu |
nccl |
1531.43 |
2051.13 |
133.94% |
从测试结果看,bs=64时4090性能与A100是接近的,但是到了bs=128时,差距可以达到30%以上。
文本生成(LLAMA)
我们测试了LLAMA 7b文本生成推理任务,用吞吐也就是每秒生成的token数作为评估标准,值越大性能越好。
GPU |
model size |
precision |
batch size |
throught(tokens/s) |
4090 |
7b |
fp16 |
1 |
46.38 |
A100 |
7b |
fp16 |
1 |
46.35 |
4090 |
7b |
fp16 |
2 |
87.85 |
A100 |
7b |
fp16 |
2 |
90.68 |
从测试结果可以看到:
Bs=1时4090跟A100差不多,bs=2时A100就超过4090了。
图片生成(Stable Diffusion)
Stable Diifusion 测试的是WEB UI场景固定sampling step=20生成512*512尺寸图片的时间,时间越短性能越好。测试了Pytorch native以及xformers加速后的生成时间。
GPU |
加速库 |
sampling steps |
image size |
batch size |
time(s) |
4090 |
native |
20 |
512*512 |
1 |
0.9 |
A100 |
native |
20 |
512*512 |
1 |
1 |
4090 |
xformers |
20 |
512*512 |
1 |
0.6 |
A100 |
xformers |
20 |
512*512 |
1 |
0.8 |
4090 |
native |
20 |
512*512 |
8 |
6.8 |
A100 |
native |
20 |
512*512 |
8 |
5.4 |
4090 |
xformers |
20 |
512*512 |
8 |
4.5 |
A100 |
xformers |
20 |
512*512 |
8 |
4.1 |
从结果看,在bs=1时,4090性能是优于A100的,但是当bs增大到8时,A100的性能就明显超过4090了。
总结
RTX 4090的Ada Lovelace架构继承了Hopper架构在AI计算方面的特性,同时搭载了新的第三代RT Core,AI性能和光追算力相比上一代RTX 3090 Ti均提升一倍,单GPU AI算力与A100接近。实际测试4090在小bs推理任务上可以与A100相当,但是首先显存带宽以及GPU间高速通信带宽的缺失,在多卡训练和推理任务上相比A100差距还是会很大。
我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8
【扫码填写上方调研问卷】
欢迎每位来到弹性计算的开发者们来反馈问题哦~