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