万字剖析:NVIDIA、AMD的巅峰之战!
對于GPU愛好者來說,這是一個漫長的等待。NVIDIA將Turing產品線維持了兩年,然后在2020年9月用Ampere取代了它。AMD更友善一點,他們的新設計間隔了15個月,但大多數人對此并不感興趣。
他們希望看到的是AMD推出一款高端機型,與NVIDIA(NVIDIA)最優秀的產品展開正面競爭。他們做到了,現在我們已經看到了結果,在花錢買最好的圖形卡時,PC游戲玩家現在(在理論上)有了很多選擇。
但是驅動它們的芯片呢?其中一個從根本上來說比另一個好嗎?繼續讀下去,看看Ampere和RDNA 2是如何決一死戰的!
多年來,高端GPU一直比 CPU大得多,而且它們的尺寸一直在穩步增長。AMD最新推出的Navi芯片面積約為520mm2,是之前Navi芯片的兩倍多。不過,這并不是他們最大的——這項榮譽頒給了他們的Instinct MI100加速器(約750 mm2)中的GPU。
上一次AMD制造的接近Navi 21大小的游戲處理器是為Radeon R9 Fury和Nano顯卡設計的,這兩款產品在Fiji 芯片上采用了GCN 3.0架構。它的裸片面積為596 mm2,但它是在臺積電的28HP工藝節點上生產的。
自2018年以來,AMD一直在使用臺積電更小的N7工藝,該生產線生產的最大芯片是Vega 20 (Radeon VII),面積為331mm2。他們所有的Navi GPU都是在略微升級的N7P處理器上制作的,所以可以比較這些產品。
Radeon R9 Nano:微型卡,大型GPU
但說到純粹的die尺寸,NVIDIA拿下了王冠,并不是說這一定是件好事。最新的基于Ampere的芯片,GA102,是628mm2。這實際上比它的前身TU102小了17%——GPU面積達到驚人的754mm2。
與NVIDIA巨大的GA100芯片(用于AI和數據中心)相比,這兩款芯片的尺寸都相形見絀,其GPU為826 mm2,采用的是臺積電的N7芯片。雖然它從來沒有被設計用來驅動桌面顯卡,但它確實顯示了GPU制造的可能規模。
把它們放在一起突出了NVIDIA最大的GPU有多大。Navi 21看起來相當苗條,盡管處理器的功能不僅僅是芯片區。GA102封裝了283億個晶體管,而AMD的新芯片減少了5%,達到268億個。
我們不知道每個GPU構建多少層,因此我們所能比較的是晶體管與die面積的比率,通常稱為die密度。Navi 21的晶體管約為每平方毫米5150萬個晶體管,但GA102明顯低于41.1,這可能是NVIDIA的芯片堆疊程度比AMD的略高,但它更可能表示工藝節點。
如前所述,Navi 21是由臺積電生產的,采用N7P生產方法,性能比N7略有提高;但在新產品GA102上,NVIDIA求助于三星來完成生產任務。這家韓國半導體巨頭正在使用他們所謂的8nm節點(標記為8N或8NN)的改良版本,專門為NVIDIA設計。
這些節點值,7和8,與芯片組件的實際尺寸沒有多大關系:它們只是市場營銷術語,用于區分不同的生產技術。也就是說,即使GA102比Navi 21有更多的層,die尺寸確實有一個特殊的影響。
一臺300毫米(12英寸)的晶圓片正在臺積電的制造工廠進行測試。
微處理器和其他芯片是由高度精煉的硅和其他材料制成的大圓盤,稱為晶圓。臺積電和三星為AMD和NVIDIA使用的是300毫米晶圓,相對于更大的die,使用更小的die,每塊晶圓將產生更多的芯片。
這種差異不可能很大,但是在降低制造成本方面,當每片晶圓的生產成本達到數千美元時,AMD相對于NVIDIA而言優勢較小。當然,這是假設三星或臺積電沒有與AMD / NVIDIA進行某種財務交易。
如果芯片本身不能很好地完成設計工作,那么所有這些die尺寸和晶體管數量都將是徒勞的。因此,讓我們深入研究每個新GPU的布局,看看它們背后的東西。
Ampere GA102和RDNA 2 Navi 21的總體架構
我們從分析Ampere GA102和RDNA 2 Navi 21 GPU的總體架構開始我們對架構的探索——這些圖表不一定向我們展示所有的物理布局,但它們給出了處理器有多少組件的明確指示。
在這兩種情況下,布局都是非常熟悉的,因為它們基本上都是其前身的擴展版本。在處理指令中添加更多的單元將始終提高GPU的性能,因為在最新的3D大片中,在高分辨率下,渲染工作量涉及大量的并行計算。
這樣的圖表是有用的,但是對于這個特定的分析來說,更有趣的是看看各個組件在GPU中的位置。在設計大型處理器時,您通常希望共享資源(如控制器和緩存)位于中心位置,以確保每個組件都具有相同的路徑。
接口系統,如本地內存控制器或視頻輸出,應該安裝在芯片的邊緣,以便更容易地將它們連接到連接GPU和顯卡其余部分的數千根單獨的電線上。
以下是AMD的Navi 21和NVIDIA的GA102 die的偽彩色圖像。它們實際上只顯示了芯片中的一層;但它們確實給我們提供了一個現代GPU內部的極好視圖。
兩種設計之間最明顯的區別在于,NVIDIA在芯片布局上沒有遵循集中化的方法——所有的系統控制器和主緩存都在底部,邏輯單元以長列形式運行。他們過去也這樣做過,但只針對中低端機型。
例如,Pascal GP106(用于GeForce GTX 1060等)實際上是GP104(來自GeForce GTX 1070)的一半。后者是較大的芯片,其緩存和控制器位于中間。這些都移到了它的兄弟姐妹那一邊,但這只是因為設計已經被拆分了。
對于之前所有的高端GPU布局,NVIDIA都使用了經典的集中式結構。為什么這里會有變化呢?這不可能是由于接口的原因,因為內存控制器和PCI Express系統都運行在die的邊緣。
這也不是出于熱學原因,因為即使die 的緩存/控制器部分比邏輯部分的溫度更高,您仍然希望在其中間具有更多的硅以幫助吸收和散發熱量 。盡管我們不能完全確定更改的原因,但我們懷疑這與NVIDIA對芯片中ROP(渲染輸出)單元實施的更改有關。
我們將在后面更詳細地討論它們,但是現在讓我們說,雖然布局的改變看起來很奇怪,但它不會對性能產生顯著的影響。這是因為3D渲染充斥著許多長時間的延遲,通常是由于必須等待數據。因此,由于一些邏輯單元比其他邏輯單元離緩存更遠而增加的納秒數,都被隱藏在了整個系統中。
在我們繼續之前,值得注意的是AMD在Navi 21布局中實施的工程改變,與驅動類似Radeon rx5700 XT的Navi 10相比。盡管新芯片在面積和晶體管數量上都比之前的芯片大了一倍,但設計者還設法在不顯著增加功耗的情況下提高了時鐘速度。
例如,Radeon RX 6800 XT運動的基時鐘和升壓時鐘分別為1825和2250mhz, TDP為300 W;Radeon RX 5700 XT的相同性能為1605 MHz、1905 MHz和225 W。英偉達也通過Ampere提高了時鐘速度,但部分原因是使用了更小、更高效的進程節點。
我們對Ampere和RDNA 2顯卡的每瓦特性能檢查顯示,兩家供應商在這方面都取得了顯著的改進,但AMD和臺積電取得了一些相當顯著的成就——比較上圖中Radeon RX 6800和Radeon VII之間的差異。
后者是他們首次使用N7節點進行GPU合作,并且在不到兩年的時間內,他們將每瓦性能提高了64%。的確,如果NVIDIA繼續與臺積電合作,那Ampere GA102的性能會好得多。
當涉及到指令處理和數據傳輸管理時,Ampere和RDNA2都遵循類似的模式來組織芯片內部的一切。游戲開發人員使用圖形API編寫標題,以制作所有圖像;它可能是Direct3D、OpenGL或Vulkan。這些基本上是軟件庫,充滿了規則、結構和簡化指令的“書籍”。
AMD和NVIDIA為他們的芯片創建的驅動程序本質上起著翻譯的作用:將通過API發布的例程轉換為GPU能夠理解的操作序列。在那之后,就完全由硬件來管理了,比如什么指令首先執行,芯片的哪個部分執行這些指令,等等。
指令管理的初始階段由合理地集中在芯片中的一組單元處理。在RDNA 2中,圖形和計算著色器通過單獨的管線進行路由,這些管線將指令調度并分派到芯片的其余部分。前者稱為圖形命令處理器,后者是異步計算引擎(ACE)。
NVIDIA只是用一個名字來描述他們的一組管理單元,即GigaThread Engine,在Ampere中它執行與RDNA 2相同的任務,盡管NVIDIA并未過多說明其實際管理方式。總之,這些命令處理器的功能類似于工廠的生產經理。
GPU通過并行執行所有操作來獲得性能,因此在整個芯片上復制了下一個組織層次。堅持工廠的類比,這類似于一家擁有中央辦公室但在多個地點生產商品的企業。
AMD使用標簽著色器引擎(SE),而NVIDIA則稱其為圖形處理集群(GPC)-不同的名稱,相同的角色。
對芯片進行這種分區的原因很簡單:命令處理單元不能處理所有事情,因為它最終會變得過于龐大和復雜。因此,將一些日程安排和組織職責進一步向下推進是有意義的。這也意味著每個分離分區可以完全獨立于其他分區執行某些操作,因此一個分區可以處理大量的圖形著色器,而其他分區則在處理長而復雜的計算著色器。
在RDNA 2的例子中,每個SE都有自己一套固定的功能單元:被設計用來完成一項特定任務的電路,程序員通常無法對其進行大量調整。
mitive Setup unit——獲取頂點,準備好進行處理,同時生成更多的頂點(essellation)并將其剔除
Rasterizer——將三角形的3D世界轉換為像素的2D網格
Render Outputs(ROPs)——讀取、寫入和混合像素
原始的設置單元以每個時鐘周期1個三角形的速率運行。這聽起來可能不是很多,但是不要忘記這些芯片運行在1.8到2.2 GHz之間,所以原始的設置不應該成為GPU的瓶頸。對Ampere來說,原始單位是在組織的下一層找到的,我們很快就會講到。
AMD和NVIDIA都沒有過多提及他們的光柵化器。后者稱為光柵引擎,我們知道它們每個時鐘周期處理一個三角形,并輸出若干像素,但沒有進一步的信息,例如它們的亞像素精度。
Navi 21芯片中的每個SE都有4組8個ROP,總共產生128個渲染輸出單元;NVIDIA的GA102每GPC包含2組8個ROP,因此整個芯片可運動112個ROP。這看起來AMD在這方面有優勢,因為更多的ROP意味著每個時鐘可以處理更多的像素。但是這樣的單元需要對緩存和本地內存的良好訪問,我們將在本文后面詳細介紹。現在,讓我們繼續研究SE/GPC分區是如何進一步劃分的。
AMD的著色引擎被劃分為雙計算單元(DCU),Navi 21芯片本身就有10個DCU——請注意,在一些文檔中,它們也被歸類為工作組處理器(WGP)。在Ampere和GA102的例子中,它們被稱為紋理處理簇(TPC),每個GPU包含6個tpc。NVIDIA設計的每一個集群都有一個叫做“變形引擎”的東西——本質上是Ampere的原始設置單元。
NVIDIA也以每時鐘1個三角形的速度運行,盡管NVIDIA的GPU比AMD的低,但他們的TPC數量比Navi 21的SE要多得多。因此,對于相同的時鐘速度,GA102應該有一個顯著的優勢,因為完整的芯片擁有42個原始設置單元,而AMD的新RDNA 2只有4個。但由于每個光柵引擎有6個TPC, GA102實際上有7個完整的原始系統,而Navi 21有4個。由于后者的時鐘并沒有比前者高75%,當涉及到幾何處理(盡管沒有游戲可能在這方面受到限制)時,似乎英偉達在這方面具有明顯的領先優勢。
芯片組織的最后一層是RDNA 2中的計算單元(CU)和Ampere中的流式多處理器(SM),這是我們GPU工廠的生產線。
這些是圖形處理器餡餅中的肉和蔬菜,因為它們擁有所有用于處理圖形、計算和現在的光線追蹤著色器的高度可編程單元。正如你在上圖中看到的,每一個芯片都只占整個芯片空間的很小一部分,但是它們仍然是非常復雜的,并且對芯片的整體性能非常重要。
到目前為止,在兩個GPU的布局和組織方式方面,還沒有什么真正的突破性協議。術語全都不同,但是它們的功能卻大同小異。而且由于它們所做的很多事情都受可編程性和靈活性的限制,因此一個相對于另一個所具有的任何優勢,都只能歸結為規模感,即哪個擁有最大的特色。
但是對于CU和SM,AMD和NVIDIA采取了不同的方式來處理著色器。在某些領域,它們有很多共同點,但在其他許多領域則并非如此。
由于安培(Ampere)在RDNA 2之前就冒險進入野外,我們首先來看看NVIDIA的SM。現在沒有必要查看裸片本身的圖像,因為它們無法準確告訴我們其中的內容,因此讓我們使用組織圖。這些不應該代表芯片中各種組件的物理排列方式,而只是每種類型中存在多少種。
圖靈對其臺式機前身Pascal進行了實質性更改(去掉了一堆FP64單元和寄存器,但是增加了張量核和光線跟蹤),而Ampere實際上是一個相當溫和的更新-至少從表面上看。不過,就NVIDIA的市場部門而言,新設計使每個SM中CUDA內核的數量增加了一倍以上。
在圖靈中,流多處理器包含四個分區(有時稱為處理塊),每個分區中容納16個INT32和16x FP32邏輯單元。這些電路旨在對32位數據值執行非常具體的數學運算:INT單位處理整數,而FP單位處理浮點數(即十進制)。
英偉達表示,一個Ampere SM總共有128個CUDA內核,但嚴格來說,這是不正確的-或者,如果我們必須堅持這一點,那么圖靈(Turing)也是如此。該芯片中的INT32單元實際上可以處理浮點值,但只能以非常少量的簡單操作進行。對于Ampere,NVIDIA已開放了它們支持的浮點數學運算范圍,以匹配其他FP32單元。這意味著每個SM的CUDA內核總數并沒有真正改變。只是其中的一半現在擁有更多功能。
每個SM分區中的所有內核都可以隨時處理同一條指令,但是由于INT / FP單元可以獨立運行,因此Ampere SM每個周期最多可以處理128x FP32計算,或一起處理64x FP32和64x INT32操作。而圖靈只是后者。
因此,新的GPU可能使FP32的輸出量比其上一代產品大一倍。對于計算工作負載,尤其是在專業應用程序中,這是向前邁出的一大步。但是對于游戲而言,優勢卻遠遠沒有達到預期。當我們首次測試GeForce RTX 3080時,這一點很明顯,它使用啟用了68個SM的GA102芯片。
盡管FP32的峰值吞吐量比GeForce 2080 Ti高出121%,但平均幀速率僅提高了31%。那么,為什么所有這些計算能力都會浪費掉呢?一個簡單的答案是,游戲并非一直在運行FP32指令。
當NVIDIA在2018年發布Turing時,他們指出, GPU處理的指令平均約有36%涉及INT32例程。這些計算通常用于計算內存地址,兩個值之間的比較以及邏輯流/控制。
因此,對于這些操作,雙速率FP32功能不起作用,因為具有兩個數據路徑的單元只能執行整數或浮點運算。而且,只有在當時由它處理的所有32個線程都排隊處理相同的FP32操作時,SM分區才會切換到此模式。在所有其他情況下,安培中的分區與圖靈中的分區一樣運行。
這意味著在INT + FP模式下運行時,GeForce RTX 3080之類的FP32僅比2080 Ti具有11%的FP32優勢。這就是為什么在游戲中看到的實際性能提升沒有原始數據所預期的那么高的原因。
至于其他改進。每個SM分區的Tensor Core更少,但每個都比Turing中的功能強大得多。這些電路執行非常具體的計算(例如將兩個FP16值相乘并用另一個FP16編號累加答案),每個內核現在每個周期執行32次這些操作。
它們還支持一種名為“細粒度結構稀疏性”的新特性,在不涉及所有細節的情況下,這意味著通過剔除那些對答案沒有影響的數據,計算率可以翻倍。同樣,這對于從事神經網絡和人工智能工作的專業人員來說是個好消息,但目前對游戲開發者來說并沒有什么明顯的好處。
光線跟蹤核心也已進行了調整:它們現在可以獨立于CUDA核心工作,因此,在進行BVH遍歷或光線原始相交數學時,SM的其余部分仍可以處理著色器。處理射線是否與原語相交測試的RT核心的部分性能也增加了一倍。
RT內核還具有附加的硬件,可幫助將光線跟蹤應用于運動模糊,但是此功能目前僅通過NVIDIA專有的Optix API公開。
還有其他一些調整,但是整體方法是明智但穩定的演進之一,而不是主要的新設計。但是考慮到圖靈的原始功能并沒有什么特別的錯誤,因此看到這一點不足為奇。
那么AMD怎么辦?他們對RDNA 2中的計算單元做了什么?
- 首頁
- 上一頁
- 1
- 2
- 3
- 下一頁
- 尾頁
- 全文
總結
以上是生活随笔為你收集整理的万字剖析:NVIDIA、AMD的巅峰之战!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dr开头的股票什么意思
- 下一篇: 手机上怎么交养老保险