首頁 > 硬體

如何做到效能翻倍 NVIDIA Ampere架構解析

2020-12-11 19:00:24

持續了一個月的“顯示卡釋出季”已經告一段落,截止目前NVIDIA釋出了GeForce RTX 3060 Ti/3070/3080/3090共4個型號的顯示卡,相比上一代顯示卡,RTX 30系顯示卡再次做到了效能翻倍的神話。

除了效能上的提升,新的NVIDIA Ampere架構還帶來了第二代RT Core和第三代Tensor,雖然RTX 30系顯示卡擁有諸多提升,但價格卻與上一代顯示卡相同。

在9月2日釋出會當天,雖然過程僅有短短的40分鐘,卻震驚了全世界的使用者。

算力提升

下面我們就來看看,“有史以來最偉大效能提升”相比上一代的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。

SM單元的改變

而NVIDIA Ampere架構的強大效能並不是NVIDIA一蹴而就,可以說在20系顯示卡中所採用的Turing架構功不可沒,下面我們先來看看完整的GA102核心。

完整的GA102 GPU包含7個GPC(圖形處理叢集)42個TPC(紋理處理叢集)以及84個SM(流處理器)組成。

GPC是佔據主導地位的高階模組,擁有所有的關鍵圖形處理單元,每個GPC包含一個專用光柵引擎

在新的NVIDIA Ampere架構中,每個GPC還包含了兩個ROP分割區,每個分割區包含8個ROP單元。下面我們來看看每個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運算單元數量提高了一倍。

我們在釋出會中經常聽到效能翻倍的說法,其實是因為本次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的加速也有助於光線追蹤降噪著色器。

第二代RT Core

在此次的NVIDIA Ampere架構中,NVIDIA官方宣佈為第二代RT Core,它和第一代有什麼不同呢。

首先要知道RT Core的工作原理是,著色器發出光線追蹤的請求,交給RT Core來處理,它將進行兩種測試,分別為邊界交叉測試(Box Intersection testing)和三角形交叉測試(Triangle Intersection testing)

基於BVH演演算法來判斷,如果是方形,那麼就返回縮小範圍繼續測試,如果是三角形,則反饋結果進行渲染。

而光線追蹤最耗時的正是求交計算,因此,要提升光線追蹤效能,主要是對兩種求交(BVH/三角形求交)進行加速。

在Turing的RT Core中,可以每個週期完成5次BVH遍歷、4次BVH求交以及一次三角形求交,在第二代RT Core 裡,NVIDIA增加了一個新的三角形位置插值模組以及一個的額外的三角形求交模組,這樣做的目的是為了提升諸如運動模糊特效時候的光線追蹤效能。

第二代RT Core可以讓光線追蹤與著色同時進行,進行的光線追蹤越多,加速就越快,它將光線相交的處理效能提升了一倍,在渲染有動態模糊的影像時,按照NVIDIA自己的實測,比Turing快8倍。

第三代Tensor Core

除了光線追蹤的強化,Ampere架構的Tensor Core也得到了極大地加強,在第三代Tensor Core中,NVIDIA引入了稀疏化加速,可自動識別並消除不太重要的DNN(深度神經網路)權重,同時依然能保持不錯的精度。

首先原始的密集矩陣會經過訓練,刪除掉稀疏矩陣,再經過訓練稀疏矩陣,從而實現稀疏優化,進而提高Tensor Core的效能。

所以最終的結果就是Tensor Core在處理稀疏網路的速率是Turing的兩倍,算力高達238 Tensor TFLOPS,而Turing為89 Tensor TFLOPS。

RTX IO

與此次RTX 30系顯示卡一同釋出的還有一項新技術——RTX IO。目前很多遊戲動輒幾十G甚至百G的安裝空間,對於儲存空間的負擔暫且不提,但存放在硬碟中的資料,如果顯示卡想要讀取到,需要先由CPU從硬碟中讀取壓縮過的資料,經過解壓縮再傳送到視訊記憶體中。

雖然隨著NVMe SSD的推出,讀取速度相較機械硬碟能夠快20倍,但受制於傳統I/O限制,NVMe高達7GB/秒的高速讀寫對於CPU是極大的負擔。

在這個過程中,會佔用多個CPU核心,壓力急劇增大,佔用較多的記憶體,而此時其實GPU是處於閒置狀態的。

RTX IO的作用就是越過CPU解壓再傳輸資料這一步,直接從PCIE匯流排讀取硬碟上經過壓縮的資料,並且完成解壓,降低CPU佔用,變向提升了效能。

當然這項技術作為系統底層的執行方式改變,還需要藉助微軟釋出的DirectStorage來實現,對於目前容量的遊戲來說,RTX IO的改善效果有限,但假以時日等遊戲容量上百G成為常態的時候,這項技術將會發揮巨大的功效。

最快的視訊記憶體

在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則是站在巨人的肩膀,將上一代的路走的更寬更紮實。


IT145.com E-mail:sddin#qq.com