如何做到性能翻倍NVIDIA Ampere架構解析
持續了一個月的“顯卡發布季”已經告一段落,截止目前NVIDIA發布了GeForce RTX 3060 Ti/3070/3080/3090共4個型號的顯卡,相比上一代顯卡,RTX 30系顯卡再次做到了性能翻倍的神話。
除了性能上的提升,新的NVIDIA Ampere架構還帶來了第二代RT Core和第三代Tensor,雖然RTX 30系顯卡擁有諸多提升,但價格卻與上一代顯卡相同,在9月2日發布會當天,雖然過程僅有短短的40分鐘,卻震驚了全世界的用戶。
01 算力提升
下面我們就來看看,“有史以來最偉大性能提升”相比上一代的NVIDIA Turing架構,做了哪些提升。
第一代RTX架構Turing
第二代RTX架構Ampere
首先來簡單回顧一下在9月2日發布會的PPT上我們都看到了什麼,相較於初代的Turing RTX架構,NVIDIA Ampere架構在算力上有著成倍的增長,每個時鐘執行2次著色器運算,而Turing為1次,著色器性能達到30 TFLOPS單精度性能,而Turing為11 TFLOPS。
NVIDIA Ampere架構翻倍了光線與三角形的相交吞吐量,RT Core達到58 RT TFLOPS,而Turing為34 RT TFLOPS。
另外在全新的Tensor Core中,可自動識別並消除不太重要的DNN權重,處理稀疏網絡的速率是Turing的兩倍,算力高達238 Tensor TFLOPS,而Turing為89 Tensor TFLOPS。
芯片說明
全新的NVIDIA Ampere GPU核心擁有280億個晶體管,628平方毫米的面積,基於三星的8nm NVIDIA定制工藝,來自美光的GDDR6X顯存,以及我們上面說的,三大處理核心均為初代Turing的兩倍速率,構成了有史以來性能最強大的Ampere。
02 SM單元的改變
而NVIDIA Ampere架構的強大性能並不是NVIDIA一蹴而就,可以說在20系顯卡中所採用的Turing架構功不可沒,下面我們先來看看完整的GA102核心。
完整的GA102核心
完整的GA102 GPU包含7個GPC(圖形處理集群)42個TPC(紋理處理集群)以及84個SM(流處理器)組成。GPC是佔據主導地位的高級模塊,擁有所有的關鍵圖形處理單元,每個GPC包含一個專用光柵引擎。在新的NVIDIA Ampere架構中,每個GPC還包含了兩個ROP分區,每個分區包含8個ROP單元。下面我們來看看每個SM單元的變化。
SM詳解
在每個SM中,包含四個大的處理分區共128個CUDA核心,4個第三代Tensor Core,1個第二代RT Core,1個256 KB的緩存文件,1個128 KB的L1緩存,這個L1緩存可以根據不同的工作需求來調配緩存,工作效率發揮至最大。
另外大家都知道本次RTX 3080的CUDA數量暴增至8704個,而RTX 3090的CUDA數量更是達到了驚人的10496個,但是大家要知道專業計算卡Tesla A100的GA100核心,擁有更大的核心面積,更多的晶體管數量,理論上只有8192個CUDA,那RTX 3080又是如何達到這種效果的呢?
其實是因為本次NVIDIA Ampere的SM在Turing基礎上增加了一倍的FP32運算單元,這就使得每個SM的FP32運算單元數量提高了一倍。
完整的GeForce RTX 3080核心
我們在發布會中經常聽到性能翻倍的說法,其實是因為本次NVIDIA Ampere的SM在Turing基礎上增加了一倍的FP32運算單元,這就使得每個SM的FP32運算單元數量提高了一倍,同時吞吐量也就變為了一倍。
而通常我們計算顯卡的CUDA數量,並不是把SM中的所有單元加起來計數,而是只統計FP32單元的數量,所以這樣一來,SM中的【FP32 : INT32】 從1:1 變為2 :1。
如RTX 3080的8704個CUDA,其實它只有4352個INT32單元,但由於內部的FP32數量翻了一倍,所以最終實現了8704這個驚人的數字。
而這樣粗暴的提升CUDA數量對於遊戲有幫助嗎?答案是有,不僅有提升還很大。其實通常在遊戲中浮點運算相比整數計算要常用的多,圖形、算法以及各種計算操作中著色器工作負載通常需要混合使用FP32算數指令,而FP32的加速也有助於光線追踪降噪著色器。
03 第二代RT Core
光追工作原理示意
在此次的NVIDIA Ampere架構中,NVIDIA官方宣佈為第二代RT Core,它和第一代有什麼不同呢。首先要知道RT Core的工作原理是,著色器發出光線追踪的請求,交給RT Core來處理,它將進行兩種測試,分別為邊界交叉測試(Box Intersection testing)和三角形交叉測試(Triangle Intersection testing )。基於BVH算法來判斷,如果是方形,那麼就返回縮小範圍繼續測試,如果是三角形,則反饋結果進行渲染。
而光線追踪最耗時的正是求交計算,因此,要提升光線追踪性能,主要是對兩種求交(BVH/三角形求交)進行加速。
RT Core的變化
在Turing的RT Core中,可以每個週期完成5次BVH遍歷、4次BVH求交以及一次三角形求交,在第二代RT Core 裡,NVIDIA增加了一個新的三角形位置插值模塊以及一個的額外的三角形求交模塊,這樣做的目的是為了提升諸如運動模糊特效時候的光線追踪性能。
運動模糊渲染原理
第二代RT Core可以讓光線追踪與著色同時進行,進行的光線追踪越多,加速就越快,它將光線相交的處理性能提升了一倍,在渲染有動態模糊的影像時,按照NVIDIA自己的實測,比Turing快8倍。
04 第三代Tensor Core
稀疏深度學習
除了光線追踪的強化,Ampere架構的Tensor Core也得到了極大地加強,在第三代Tensor Core中,NVIDIA引入了稀疏化加速,可自動識別並消除不太重要的DNN(深度神經網絡)權重,同時依然能保持不錯的精度。
首先原始的密集矩陣會經過訓練,刪除掉稀疏矩陣,再經過訓練稀疏矩陣,從而實現稀疏優化,進而提高Tensor Core的性能。
第三代Tensor Core的處理能力大大提升
所以最終的結果就是Tensor Core在處理稀疏網絡的速率是Turing的兩倍,算力高達238 Tensor TFLOPS,而Turing為89 Tensor TFLOPS。
05 RTX IO
與此次RTX 30系顯卡一同發布的還有一項新技術——RTX IO。目前很多遊戲動輒幾十G甚至百G的安裝空間,對於存儲空間的負擔暫且不提,但存放在硬盤中的數據,如果顯卡想要讀取到,需要先由CPU從硬盤中讀取壓縮過的數據,經過解壓縮再發送到顯存中。
雖然隨著NVMe SSD的推出,讀取速度相較機械硬盤能夠快20倍,但受制於傳統I/O限制,NVMe高達7GB/秒的高速讀寫對於CPU是極大的負擔。
傳統的數據交換
在這個過程中,會佔用多個CPU核心,壓力急劇增大,佔用較多的內存,而此時其實GPU是處於閒置狀態的。RTX IO的作用就是越過CPU解壓再傳輸數據這一步,直接從PCIE總線讀取硬盤上經過壓縮的數據,並且完成解壓,降低CPU佔用,變向提升了性能。
RTX IO可以極大解放CPU負擔
當然這項技術作為系統底層的運行方式改變,還需要藉助微軟發布的DirectStorage來實現,對於目前容量的遊戲來說,RTX IO的改善效果有限,但假以時日等遊戲容量上百G成為常態的時候,這項技術將會發揮巨大的功效。
06 最快的顯存
GDDR6X
在RTX 3080中,採用了GDDR6X顯存,GDDR6X擁有320bit的位寬以及19Gbps的帶寬速度,與採用GDDR6的Turing相比可提升40%的速度,在相同時間內GDDR6X可以比GDDR6傳輸多2倍的數據。這對於需要大量數據負載的工作尤為重要,如光線追踪的遊戲、AI學習和8K視頻渲染。
同時搭配新增的HDMI2.1接口,可以支持單線8K的視頻輸出,而上一代HDMI2.0僅支持4K 98Hz的視頻輸出,如果想要連接8K電視,則需要更多的線纜支持。
相信了解RTX 30系顯卡的性能後,會有玩家會問,RTX 20系顯卡如此“短壽”算不算失敗的一代,我認為不算。Turing為我們開創了光線追踪和AI學習的新世界,奠定了GPU未來的發展方向,真正意義上實現從性能的堆砌到質的改變。而Ampere則是站在巨人的肩膀,將上一代的路走的更寬更紮實。