NVIDIA新一代Ampere架構簡單解讀 一次有改良有革命的架構升級

本帖最後由 ledpf 於 2020-5-30 13:46 編輯

2020年5月14日晚間,NVIDIA的新一代Ampere架構隨最新的計算卡A100正式亮相,這張加速卡上面使用的GA100核心也是目前世界上最大的7nm核心,其面積高達826mm2。那麼這枚核心中包含的Ampere架構與前代相比究竟在哪些地方有不同呢?本文就帶各位一起簡單地看看這個NVIDIA最新一代圖形架構。

首先我們的旅程從整個GA100 GPU開始,下圖是官方提供的GA100 GPU全貌(可以點擊打開原圖)。


分割成了兩組的超大L2緩存和超高顯存帶寬

Ampere架構仍然沿用了成熟的GPC-TPC-SM多級架構,GA100內部包含8組GPC,每組GPC包含8組TPC,每組TPC又包含8組SM。主要的區別點在於,中間的L2緩存不再是統一的一組,而是被分割成了兩組。實際上,GA100的L2緩存相比起前代的GV100要大上近7倍——從原本的6MB直接跳到了40MB。大容量的L2緩存會在一定程度上減輕計算單元對顯存帶寬的依賴,不過為了避免訪問遠端L2緩存時出現延遲過高的問題,它被分成了兩塊,保證延遲不過高。這種大容量特性和分割結構讓GA100的L2緩存帶寬提升了2.3倍,同時硬件的緩存一致性保證應用程序可以自動利用大容量的L2緩存提升性能。

NVIDIA三代頂級計算卡規格對比表



Tesla P100Tesla V100A100
GPC668
TPC284054
SM5680108
FP32/SM646464
FP32/GPU358451206912
FP64/SM323232
FP64/GPU179225603456
Tensor Cores代數N/A第一代第三代
Tesor Cores/SMN/A84
材質單元224320432
顯存接口4096-bit HBM24096-bit HBM25120-bit HBM2 ECC
顯存容量16 GB32/16 GB40 GB
顯存帶寬720 GB/s900 GB/s1555 GB/s
二級緩存大小4 MB6 MB 40 MB
SM單元共享緩存大小64 KB96 KB164 KB
寄存器文件大小/SM256 KB256 KB256 KB
寄存器文件大小/GPU14 MB20 MB27 MB
TDP300 W300 W400 W
芯片面積610 mm2815 mm2826 mm2
製程工藝16nm FinFET+12nm FFN7nm N7
超 能 網 制 作



除了容量和結構上的變化,Ampere也在架構上引入了名為計算數據壓縮(Compute Data Compression)的新緩存特性,它可以加速非結構化的稀疏數據和其他可壓縮的數據,使DRAM的讀寫帶寬能夠提升4倍,L2中的讀取帶寬提升4倍,容量提升2倍。同時,針對大容量的L2緩存,Ampere為程序員提供了數據駐留控制,允許用戶對緩存數據進行管理,可以手動將一些數據保留在L2中,加速持久化的訪問。

另外在顯存帶寬上面,A100也有突破。它仍然使用了HBM2的顯存,一共五個活動堆棧,每個堆棧中有8片8Gb顯存,最終組成40GB的顯存,運行在1215MHz的頻率上,其顯存帶寬高達1555GB/s,是V100的1.7倍多。另外它具備ECC硬件校驗功能,需要佔用額外的顯存,這也就是在架構圖和渲染圖上,GA100均擁有6組HBM2顯存,而只有5組是實際可用的原因了。而且不僅僅是顯存,GPU內部的所有寄存器、L1和L2緩存均支持ECC特性。

新的數據接口

再來看上下的外圍部分,首先比較顯眼的應該是PCI Express 4.0。相信我們的讀者對PCIe 4.0已經很熟悉了,這裡也就不講具體的了,只要知道它的帶寬比3.0提升了一倍即可。

在NVIDIA的計算陣列中用的更多的是NVLink這個專門用來讓GPU實現互聯的接口,在Ampere上,NVLink升級到了第三代。第三代NVLink將每個信號對(signal pair)的數據速率提升到了50Gb/s,比前代幾乎提升一倍,單個第三代NVLink在每個方向上面能夠提供25GB/s的帶寬,這與上代類似,但少用了一半的信號對,這也使得GA100上面的NVLink鏈路總數直接擴增了一倍,達到12條,總帶寬達到600GB/s,比GV100提升一倍。

延續Volta的SM設計

看完更新了的數據交換接口,讓我們把這張圖放到放大鏡下面,來看一看Ampere,應該說是GA100的SM單元設計。


GA100的SM單元

如果要搞明白它的變化點,我們還要請出Volta架構和Turing架構的SM單元。


左GA100,右GV100


左GA100,右TU102

可以看到Ampere的SM單元設計保留了從Volta開始的分精度計算思路,將計算核心分成了針對整數計算的INT32單元和針對浮點計算的FP32、FP64單元和針對FP16、INT8等AI計算中常見的數據類型的Tensor Cores。從數量來看,每個SM仍然擁有64個FP32單元、64個INT32單元和32個FP64單元,這與Volta和Turing沒有太大的區別(Turing SM沒有FP64單元)。比較明顯的區別在於,在Ampere SM中,每SM僅包含四個Tensor Core。至於RT Cores?那是遊戲卡才有的,面對純計算用途的GA100自然不需要這玩意兒。

大幅加強的Tensor Cores

是的,Tensor Cores變少了,但是它變強了。在Ampere架構上,Tensor Cores升級到了第三代,這也是Ampere SM中變化最大的地方了。第三代Tensor Cores變得幾乎無所不能,它可以加速幾乎所有的常見數據類型,包括FP16、BF16、TF32、FP64、INT8、INT4和二進制。下面是官方的代際數據類型對比表:

不僅僅是支持的數據類型變多了,它的算力也有很大的提高,現在每個Tensor Cores在每個時鐘內可以執行256次FP16/FP32 FMA操作,在前代,這個數字是64次。也就是提高了足足4倍,於是,就算是每個SM中減少一半的Tensor Cores,它仍然能夠提供兩倍於前代的性能。

另外,為了提高Tensor Cores訓練AI時的效率,NVIDIA新創了一種名為TF32的數據類型,它擁有FP32的範圍和FP16的精度,對於調用Tensor Core的操作,它會自動啟用TF32進行處理。而沒有調用Tensor Cores的操作將仍然走FP32的數據路徑,Tensor Cores會自動讀取FP32數據,在內部減精度進行運算,在最終輸出的時候會將數據還原成IEEE標準。

新版Tensor Cores還支持稀疏矩陣運算。稀疏矩陣指的是大部分元素為0的矩陣,對於這種矩陣,NVIDIA使用了自己開發出來的稀疏計算方式,它支持2:4的結構化稀疏運算,需要參與計算的矩陣在每四個元素中有2個以上的0元素,它可以將Tensor Cores的計算吞吐量翻一倍。

虛擬多實例(MIG)特性

數據中心多採用虛擬化技術為客戶提供計算實例,在CPU虛擬化上面,現有的方案已經非常成熟,但對於GPU,現有的虛擬化方案就不太能夠滿足當前數據中心的需求,如同下圖中所示意的,一個CPU可能會被多名用戶同時佔用,而一塊GPU在單一時間內只能被一名用戶所使用,這就有可能造成資源浪費。設想一下,用戶1只需要0.5塊GPU的資源即可完成任務,而用戶2則需要1.5塊GPU資料,如果按照CPU虛擬化的方式,那麼此時2塊GPU即可滿足用戶的需求,但因為GPU並不能夠分塊,使得數據中心要給用戶分配1+2共3塊GPU,才能夠滿足需求,這無疑是浪費了計算資源。

而Ampere上面引入的多實例GPU(Multi-Instance GPU)特性則很好地從硬件上面解決了當前數據中心在GPU資源分配上面遇到的問題,它在硬件底層即可將整塊顯卡切分成7個獨立實例,並且可以分配給不同用戶使用。

MIG特性的引入實際上是將GPU資源進行了細粒度的劃分,就有如CPU按核心數量來劃分計算資源一樣,不過GPU暫時還做不到細化到單個SM單元這麼細,但已經是為虛擬化做出了重大的升級。

總結:改良性的更新,讓人更期待遊戲版的改變

總的來說,Ampere架構的更新並不是革命性的,而是延續了NVIDIA這幾年在架構設計上的一貫思路,微觀上在SM單元中延續分精度計算,並加強Tensor Cores這個對深度學習計算非常有用的單元,宏觀上面增大GPU的規模,不僅將整個GPU包含的SM單元數量擴大到128組這個數字,更是把整片GPU上面的緩存系統都放大了,尤其是40MB的二級緩存,讓人印象深刻。

不過,GA100是一個為計算而特別設計的核心,雖然Ampere將會同時登陸計算卡和圖形卡之中,但它們的配置會有一些不同。我們目前可以判斷的是,Ampere的圖形版中勢必會取消掉所有FP64單元,另外Turing中引入的RT Cores將會被繼承,Tensor Cores也應該會升級到第三代。而其他改動,像是SM的共享緩存大小和寄存器文件大小,應該會被保留,但二級緩存應該不會有40MB那麼誇張了,另外,顯存接口肯定會改到更為便宜的GDDR6上去。至於核心的規模嘛……肯定不會比GA100大(廢話),但這代在CUDA Core上貌似沒有進行太大的改進,如果想要在圖形性能上進行提升,那要麼是提升頻率,要麼是擴大規模,兩者並行下來,未來的GA102芯片在FP32的數量上面可能會逼近A100計算卡的6912個,當然,拿到GeForce中肯定會挨上幾刀。

那麼,關於Ampere架構的簡要解讀就到此為止了,對於我們來說,更有用的內容還是要等到圖形卡出來才有的分析。本文主要參考了官方的《NVIDIA Ampere Architecture In-Depth》,由於本人能力和認知有限,文章中難免會有錯誤,還請各位讀者指出。


https://www.expreview.com/74230.html

價錢都係革命性升級

TOP

7NM製程之後 TDP同核心面積中多左
7NM唔係可以耗電減少幾成, 效能提升幾成咩...

TOP

回覆 3# aes090


    聽講 3080Ti die size ~500mm2, 比 2080Ti 754mm2 細左三成左右
呢個講既 A100 應該唔係 for gaming, 而係 Tesla 級別

TOP

7NM製程之後 TDP同核心面積中多左
7NM唔係可以耗電減少幾成, 效能提升幾成咩... ...
aes090 發表於 2020-5-30 19:29



Transistors count: GA100 54,200M vs GV100 21,100M
由12nm轉去7nm, 晶片密度已經提昇超過兩倍
用電多咗都係同電晶體數量有關

另外耗電唔係單純睇用咗幾多Watt電, 係睇整體效率
假設GV100用300W電有10Tflops效能
GA100用400W電有20Tflops, 以效率計已經係慳咗50%電

利申: 唔識

TOP

消費者只關心,快幾多,幾時賣,賣幾錢

其他 spec ,點運作 ,who care......

TOP

睇完全文只有一個感想:整篇文章用詞好嘔心

TOP

價錢上革命升級

TOP

價錢Exponentially 上呢

TOP

本帖最後由 s84292 於 2020-6-9 08:27 編輯
7NM製程之後 TDP同核心面積中多左
7NM唔係可以耗電減少幾成, 效能提升幾成咩... ...
aes090 發表於 2020-5-30 19:29


你剩係睇個TDP高左,但你就冇睇佢性能高左幾多倍

A100 400W, V100 300W, 唔用新運算模式FP16都快成2倍以上
FP32改左新運算方式暴增, 如果針對新指令直頭快左20倍以上....

TOP