NVIDIA新一代Ampere架構簡單解讀 一次有改良有革命的架構升級
[i=s] 本帖最後由 ledpf 於 2020-5-30 13:46 編輯 [/i][p=30, 2, left]2020年5月14日晚間,NVIDIA的新一代Ampere架構隨最新的計算卡A100正式亮相,這張加速卡上面使用的GA100核心也是目前世界上最大的7nm核心,其面積高達826mm2。那麼這枚核心中包含的Ampere架構與前代相比究竟在哪些地方有不同呢?本文就帶各位一起簡單地看看這個NVIDIA最新一代圖形架構。[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/a100-header.jpg[/img][/p][p=30, 2, left]首先我們的旅程從整個GA100 GPU開始,下圖是官方提供的GA100 GPU全貌(可以點擊打開原圖)。[/p][img]http://img.expreview.com/review/2020/05/Ampere/ga100-full-128-sms_900.jpg[/img]
分割成了兩組的超大L2緩存和超高顯存帶寬[p=30, 2, left]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緩存提升性能。[/p][align=center][size=1.2em][b]NVIDIA三代頂級計算卡規格對比表[/b][/size][/align]
[table=96%]
[tr][td]
[/td][td]Tesla P100[/td][td]Tesla V100[/td][td=30,1]A100[/td][/tr]
[tr][td]GPC[/td][td]6[/td][td]6[/td][td=30,1]8[/td][/tr]
[tr][td]TPC[/td][td]28[/td][td]40[/td][td=30,1]54[/td][/tr]
[tr][td]SM[/td][td]56[/td][td]80[/td][td=30,1]108[/td][/tr]
[tr][td]FP32/SM[/td][td]64[/td][td]64[/td][td=30,1]64[/td][/tr]
[tr][td]FP32/GPU[/td][td]3584[/td][td]5120[/td][td=30,1]6912[/td][/tr]
[tr][td]FP64/SM[/td][td]32[/td][td]32[/td][td=30,1]32[/td][/tr]
[tr][td]FP64/GPU[/td][td]1792[/td][td]2560[/td][td=30,1]3456[/td][/tr]
[tr][td]Tensor Cores代數[/td][td]N/A[/td][td]第一代[/td][td=30,1]第三代[/td][/tr]
[tr][td]Tesor Cores/SM[/td][td]N/A[/td][td]8[/td][td=30,1]4[/td][/tr]
[tr][td]材質單元[/td][td]224[/td][td]320[/td][td=30,1]432[/td][/tr]
[tr][td]顯存接口[/td][td]4096-bit HBM2[/td][td]4096-bit HBM2[/td][td=30,1]5120-bit HBM2 ECC[/td][/tr]
[tr][td]顯存容量[/td][td]16 GB[/td][td]32/16 GB[/td][td=30,1]40 GB[/td][/tr]
[tr][td]顯存帶寬[/td][td]720 GB/s[/td][td]900 GB/s[/td][td=30,1]1555 GB/s[/td][/tr]
[tr][td]二級緩存大小[/td][td]4 MB[/td][td]6 MB [/td][td=30,1]40 MB[/td][/tr]
[tr][td]SM單元共享緩存大小[/td][td]64 KB[/td][td]96 KB[/td][td=30,1]164 KB[/td][/tr]
[tr][td]寄存器文件大小/SM[/td][td]256 KB[/td][td]256 KB[/td][td=30,1]256 KB[/td][/tr]
[tr][td]寄存器文件大小/GPU[/td][td]14 MB[/td][td]20 MB[/td][td=30,1]27 MB[/td][/tr]
[tr][td]TDP[/td][td]300 W[/td][td]300 W[/td][td=30,1]400 W[/td][/tr]
[tr][td]芯片面積[/td][td]610 mm2[/td][td]815 mm2[/td][td=30,1]826 mm2[/td][/tr]
[tr][td]製程工藝[/td][td]16nm FinFET+[/td][td]12nm FFN[/td][td=30,1]7nm N7[/td][/tr]
[tr][td=30,1]超 能 網 制 作[/td][/tr]
[/table]
[p=30, 2, left]除了容量和結構上的變化,Ampere也在架構上引入了名為計算數據壓縮(Compute Data Compression)的新緩存特性,它可以加速非結構化的稀疏數據和其他可壓縮的數據,使DRAM的讀寫帶寬能夠提升4倍,L2中的讀取帶寬提升4倍,容量提升2倍。同時,針對大容量的L2緩存,Ampere為程序員提供了數據駐留控制,允許用戶對緩存數據進行管理,可以手動將一些數據保留在L2中,加速持久化的訪問。[/p][p=30, 2, left]另外在顯存帶寬上面,A100也有突破。它仍然使用了HBM2的顯存,一共五個活動堆棧,每個堆棧中有8片8Gb顯存,最終組成40GB的顯存,運行在1215MHz的頻率上,其顯存帶寬高達1555GB/s,是V100的1.7倍多。另外它具備ECC硬件校驗功能,需要佔用額外的顯存,這也就是在架構圖和渲染圖上,GA100均擁有6組HBM2顯存,而只有5組是實際可用的原因了。而且不僅僅是顯存,GPU內部的所有寄存器、L1和L2緩存均支持ECC特性。[/p]新的數據接口[p=30, 2, left]再來看上下的外圍部分,首先比較顯眼的應該是PCI Express 4.0。相信我們的讀者對PCIe 4.0已經很熟悉了,這裡也就不講具體的了,只要知道它的帶寬比3.0提升了一倍即可。[/p][p=30, 2, left]在NVIDIA的計算陣列中用的更多的是NVLink這個專門用來讓GPU實現互聯的接口,在Ampere上,NVLink升級到了第三代。第三代NVLink將每個信號對(signal pair)的數據速率提升到了50Gb/s,比前代幾乎提升一倍,單個第三代NVLink在每個方向上面能夠提供25GB/s的帶寬,這與上代類似,但少用了一半的信號對,這也使得GA100上面的NVLink鏈路總數直接擴增了一倍,達到12條,總帶寬達到600GB/s,比GV100提升一倍。[/p]延續Volta的SM設計[p=30, 2, left]看完更新了的數據交換接口,讓我們把這張圖放到放大鏡下面,來看一看Ampere,應該說是GA100的SM單元設計。[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/ga100-sm.png[/img]
GA100的SM單元[/p][p=30, 2, left]如果要搞明白它的變化點,我們還要請出Volta架構和Turing架構的SM單元。[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/ga100vsvolta.png[/img]
左GA100,右GV100[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/ga100vsturing.png[/img]
左GA100,右TU102[/p][p=30, 2, left]可以看到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自然不需要這玩意兒。[/p]大幅加強的Tensor Cores[p=30, 2, left]是的,Tensor Cores變少了,但是它變強了。在Ampere架構上,Tensor Cores升級到了第三代,這也是Ampere SM中變化最大的地方了。第三代Tensor Cores變得幾乎無所不能,它可以加速幾乎所有的常見數據類型,包括FP16、BF16、TF32、FP64、INT8、INT4和二進制。下面是官方的代際數據類型對比表:[/p][p=30, 2, center][img=733,250]http://img.expreview.com/review/2020/05/Ampere/image-20200515154328484.png[/img][/p][p=30, 2, left]不僅僅是支持的數據類型變多了,它的算力也有很大的提高,現在每個Tensor Cores在每個時鐘內可以執行256次FP16/FP32 FMA操作,在前代,這個數字是64次。也就是提高了足足4倍,於是,就算是每個SM中減少一半的Tensor Cores,它仍然能夠提供兩倍於前代的性能。[/p][p=30, 2, center][img=624,279]http://img.expreview.com/review/2020/05/Ampere/TensorFloat32-TF32.jpg[/img][/p][p=30, 2, left]另外,為了提高Tensor Cores訓練AI時的效率,NVIDIA新創了一種名為TF32的數據類型,它擁有FP32的範圍和FP16的精度,對於調用Tensor Core的操作,它會自動啟用TF32進行處理。而沒有調用Tensor Cores的操作將仍然走FP32的數據路徑,Tensor Cores會自動讀取FP32數據,在內部減精度進行運算,在最終輸出的時候會將數據還原成IEEE標準。[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/Fine-Grain-Structured-Sparsity.png[/img][/p][p=30, 2, left]新版Tensor Cores還支持稀疏矩陣運算。稀疏矩陣指的是大部分元素為0的矩陣,對於這種矩陣,NVIDIA使用了自己開發出來的稀疏計算方式,它支持2:4的結構化稀疏運算,需要參與計算的矩陣在每四個元素中有2個以上的0元素,它可以將Tensor Cores的計算吞吐量翻一倍。[/p]虛擬多實例(MIG)特性[p=30, 2, left]數據中心多採用虛擬化技術為客戶提供計算實例,在CPU虛擬化上面,現有的方案已經非常成熟,但對於GPU,現有的虛擬化方案就不太能夠滿足當前數據中心的需求,如同下圖中所示意的,一個CPU可能會被多名用戶同時佔用,而一塊GPU在單一時間內只能被一名用戶所使用,這就有可能造成資源浪費。設想一下,用戶1只需要0.5塊GPU的資源即可完成任務,而用戶2則需要1.5塊GPU資料,如果按照CPU虛擬化的方式,那麼此時2塊GPU即可滿足用戶的需求,但因為GPU並不能夠分塊,使得數據中心要給用戶分配1+2共3塊GPU,才能夠滿足需求,這無疑是浪費了計算資源。[/p][p=30, 2, center][img=100,0]http://img.expreview.com/review/2020/05/Ampere/CSP-Multi-User-Today-Ronny-Reworked.png[/img][/p][p=30, 2, left]而Ampere上面引入的多實例GPU(Multi-Instance GPU)特性則很好地從硬件上面解決了當前數據中心在GPU資源分配上面遇到的問題,它在硬件底層即可將整塊顯卡切分成7個獨立實例,並且可以分配給不同用戶使用。[/p][p=30, 2, center][img]http://img.expreview.com/review/2020/05/Ampere/CSP-multi-user-with-MIG-1.png[/img][/p][p=30, 2, left]MIG特性的引入實際上是將GPU資源進行了細粒度的劃分,就有如CPU按核心數量來劃分計算資源一樣,不過GPU暫時還做不到細化到單個SM單元這麼細,但已經是為虛擬化做出了重大的升級。[/p]總結:改良性的更新,讓人更期待遊戲版的改變[p=30, 2, left]總的來說,Ampere架構的更新並不是革命性的,而是延續了NVIDIA這幾年在架構設計上的一貫思路,微觀上在SM單元中延續分精度計算,並加強Tensor Cores這個對深度學習計算非常有用的單元,宏觀上面增大GPU的規模,不僅將整個GPU包含的SM單元數量擴大到128組這個數字,更是把整片GPU上面的緩存系統都放大了,尤其是40MB的二級緩存,讓人印象深刻。[/p][p=30, 2, left]不過,GA100是一個為計算而特別設計的核心,雖然Ampere將會同時登陸計算卡和圖形卡之中,但它們的配置會有一些不同。我們目前可以判斷的是,Ampere的圖形版中勢必會取消掉所有FP64單元,另外Turing中引入的RT Cores將會被繼承,Tensor Cores也應該會升級到第三代。而其他改動,像是SM的共享緩存大小和寄存器文件大小,應該會被保留,但二級緩存應該不會有40MB那麼誇張了,另外,顯存接口肯定會改到更為便宜的GDDR6上去。至於核心的規模嘛……肯定不會比GA100大(廢話),但這代在CUDA Core上貌似沒有進行太大的改進,如果想要在圖形性能上進行提升,那要麼是提升頻率,要麼是擴大規模,兩者並行下來,未來的GA102芯片在FP32的數量上面可能會逼近A100計算卡的6912個,當然,拿到GeForce中肯定會挨上幾刀。[/p][p=30, 2, left]那麼,關於Ampere架構的簡要解讀就到此為止了,對於我們來說,更有用的內容還是要等到圖形卡出來才有的分析。本文主要參考了官方的《NVIDIA Ampere Architecture In-Depth》,由於本人能力和認知有限,文章中難免會有錯誤,還請各位讀者指出。[/p]
[p=30, 2, left]https://www.expreview.com/74230.html
[/p] 價錢都係革命性升級:xd: 7NM製程之後 TDP同核心面積中多左:eek:
7NM唔係可以耗電減少幾成, 效能提升幾成咩... [b]回覆 [url=https://www.hkepc.com/forum/redirect.php?goto=findpost&pid=39473549&ptid=2565148]3#[/url] [i]aes090[/i] [/b]
聽講 3080Ti die size ~500mm2, 比 2080Ti 754mm2 細左三成左右
呢個講既 A100 應該唔係 for gaming, 而係 Tesla 級別 [quote]7NM製程之後 TDP同核心面積中多左
7NM唔係可以耗電減少幾成, 效能提升幾成咩... ...
[size=2][color=#999999]aes090 發表於 2020-5-30 19:29[/color] [url=https://www.hkepc.com/forum/redirect.php?goto=findpost&pid=39473549&ptid=2565148][img]https://www.hkepc.com/forum/images/common/back.gif[/img][/url][/size][/quote]
Transistors count: GA100 54,200M vs GV100 21,100M
由12nm轉去7nm, 晶片密度已經提昇超過兩倍
用電多咗都係同電晶體數量有關
另外耗電唔係單純睇用咗幾多Watt電, 係睇整體效率
假設GV100用300W電有10Tflops效能
GA100用400W電有20Tflops, 以效率計已經係慳咗50%電
利申: 唔識 **** 作者被禁止或刪除 內容自動屏蔽 **** 睇完全文只有一個感想:整篇文章用詞好嘔心 價錢上革命升級 價錢Exponentially 上呢 [i=s] 本帖最後由 s84292 於 2020-6-9 08:27 編輯 [/i]
[quote]7NM製程之後 TDP同核心面積中多左
7NM唔係可以耗電減少幾成, 效能提升幾成咩... ...
[size=2][color=#999999]aes090 發表於 2020-5-30 19:29[/color] [url=https://www.hkepc.com/forum/redirect.php?goto=findpost&pid=39473549&ptid=2565148][img]https://www.hkepc.com/forum/images/common/back.gif[/img][/url][/size][/quote]
你剩係睇個TDP高左,但你就冇睇佢性能高左幾多倍
A100 400W, V100 300W, 唔用新運算模式FP16都快成2倍以上
FP32改左新運算方式暴增, 如果針對新指令直頭快左20倍以上....
[img]https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/ampere-architecture/nvidia-tensor-cores-chart-2c50-p@2x.jpg[/img]
頁:
[1]
2