導(dǎo)讀
三十年前,CPU 和其他專用處理器幾乎處理所有計(jì)算任務(wù)。那個(gè)時(shí)代的顯卡有助于加快 Windows 和應(yīng)用程序中 2D 形狀的繪制速度,但絕對(duì)沒有其他作用??爝M(jìn)到今天,GPU 現(xiàn)已成為整個(gè)行業(yè)最具主導(dǎo)地位的芯片之一。
具有諷刺意味的是,圖形芯片硬件的唯一功能的日子已經(jīng)一去不復(fù)返了,圖形高性能計(jì)算和機(jī)器學(xué)習(xí)在很大程度上依賴于不起眼的 GPU 的處理能力。與我們一起探索這款單芯片如何從一個(gè)不起眼的像素推動(dòng)器演變成一個(gè)強(qiáng)大的浮點(diǎn)計(jì)算引擎。
***01. ***一開始CPU統(tǒng)治一切
讓我們首先回到 20 世紀(jì) 90 年代末。高性能計(jì)算領(lǐng)域,無論是使用超級(jí)計(jì)算機(jī)進(jìn)行科學(xué)研究、標(biāo)準(zhǔn)服務(wù)器上的數(shù)據(jù)處理,還是工作站上的工程和設(shè)計(jì)任務(wù),都完全依賴于兩種類型的 CPU:為單一目的而構(gòu)建的專用處理器或現(xiàn)成的處理器,AMD、IBM 或 Intel 的貨架芯片。
以 ASCI RED為例。1997 年,它是最強(qiáng)大的超級(jí)計(jì)算機(jī)之一,由 9,632 個(gè) Intel Pentium II Overdrive CPU 組成(下圖)。每個(gè)單元的運(yùn)行頻率為 333 MHz,該系統(tǒng)的理論峰值計(jì)算性能略高于 3.2 TFLOPS(每秒萬億次浮點(diǎn)運(yùn)算)。
由于我們將在本文中經(jīng)常提到這個(gè)指標(biāo),因此值得花點(diǎn)時(shí)間來解釋它的含義。在計(jì)算機(jī)科學(xué)中,浮點(diǎn)數(shù)(或簡稱浮點(diǎn)數(shù))是表示非整數(shù)值的數(shù)據(jù)值,例如 6.2815 或 0.0044。整數(shù)值(稱為整數(shù))經(jīng)常用于控制計(jì)算機(jī)及其上運(yùn)行的任何軟件所需的計(jì)算。
浮點(diǎn)數(shù)對(duì)于精度至關(guān)重要的情況至關(guān)重要 - 特別是與科學(xué)或工程相關(guān)的任何事情。即使是簡單的計(jì)算,例如確定圓的周長,也至少涉及一個(gè)浮點(diǎn)值。
幾十年來,CPU 一直擁有單獨(dú)的電路來對(duì)整數(shù)和浮點(diǎn)數(shù)執(zhí)行邏輯運(yùn)算。在上述 Pentium II Overdrive 的情況下,它可以在每個(gè)時(shí)鐘周期執(zhí)行一次基本浮點(diǎn)運(yùn)算(乘法或加法)。理論上,這就是為什么 ASCI Red 的峰值浮點(diǎn)性能為 9,632 個(gè) CPU x 3.33 億個(gè)時(shí)鐘周期 x 1 次操作/周期 = 3,207,456 百萬次 FLOPS。
這些數(shù)字是基于理想條件(例如,對(duì)易于放入高速緩存的數(shù)據(jù)使用最簡單的指令)預(yù)測(cè)的,并且在現(xiàn)實(shí)生活中很少實(shí)現(xiàn)。然而,它們可以很好地表明系統(tǒng)的功率。
其他超級(jí)計(jì)算機(jī)也擁有類似數(shù)量的標(biāo)準(zhǔn)處理器——?jiǎng)趥愃估ツ獱枃覍?shí)驗(yàn)室的Blue Pacific使用了 5808 個(gè) IBM PowerPC 604e芯片,洛斯阿拉莫斯國家實(shí)驗(yàn)室的Blue Mountain(上圖)則使用了 6144 個(gè)MIPS Technologies R1000。
為了達(dá)到萬億次浮點(diǎn)運(yùn)算級(jí)別的處理能力,需要數(shù)千個(gè) CPU,所有這些都需要大量 RAM 和硬盤存儲(chǔ)的支持。過去是這樣,現(xiàn)在仍然是,這一切歸因于機(jī)器的數(shù)學(xué)要求。當(dāng)我們?cè)趯W(xué)校第一次接觸物理、化學(xué)和其他學(xué)科的方程時(shí),一切都是一維的。換句話說,我們使用一個(gè)數(shù)字來表示距離、速度、質(zhì)量、時(shí)間等。
然而,為了準(zhǔn)確地建模和模擬現(xiàn)象,需要更多的維度,并且數(shù)學(xué)上升到向量、矩陣和張量的領(lǐng)域。它們?cè)跀?shù)學(xué)中被視為單個(gè)實(shí)體,但包含多個(gè)值,這意味著任何進(jìn)行計(jì)算的計(jì)算機(jī)都需要同時(shí)處理大量數(shù)字。鑒于當(dāng)時(shí)的 CPU 每個(gè)周期只能處理一到兩個(gè)浮點(diǎn)數(shù),因此需要數(shù)千個(gè)浮點(diǎn)數(shù)。
***02. ***SIMD 加入競爭:
MMX、3DNow!和SSE
1997 年,英特爾使用一種名為MMX的技術(shù)更新了其最初的奔騰系列 CPU ,這是一組利用內(nèi)核內(nèi)八個(gè)附加寄存器的指令。每個(gè)都被設(shè)計(jì)為存儲(chǔ)一到四個(gè)整數(shù)值。該系統(tǒng)允許處理器同時(shí)執(zhí)行跨多個(gè)數(shù)字的一條指令,這種方法更被稱為 SIMD(單指令、多數(shù)據(jù))。
一年后,AMD 推出了自己的版本,稱為3DNow!。它的性能尤其優(yōu)越,因?yàn)榧拇嫫骺梢源鎯?chǔ)浮點(diǎn)值。又過了一年,英特爾才在 MMX 中解決這個(gè)問題,并在其 Pentium III 芯片中引入了SSE(流 SIMD 擴(kuò)展)。
首次出現(xiàn)在 AMD K6-2 CPU 中的3D Now
隨著日歷進(jìn)入新千年,高性能計(jì)算機(jī)的設(shè)計(jì)者可以使用能夠有效處理矢量數(shù)學(xué)的標(biāo)準(zhǔn)處理器。一旦擴(kuò)展到數(shù)千個(gè),這些處理器就可以同樣出色地管理矩陣和張量。盡管取得了這一進(jìn)步,超級(jí)計(jì)算機(jī)世界仍然青睞舊的或?qū)S玫男酒?,因?yàn)檫@些新的擴(kuò)展并不是專門為此類任務(wù)而設(shè)計(jì)的。
對(duì)于另一種快速普及的處理器(GPU)來說也是如此,它比 AMD 或英特爾的任何 CPU 都更擅長 SIMD 工作。
在圖形處理器的早期,CPU 處理組成場(chǎng)景的三角形的計(jì)算(因此 AMD 為其 SIMD 技術(shù)使用這個(gè)名稱)。然而,像素的著色和紋理完全由 GPU 處理,并且這項(xiàng)工作的許多方面都涉及矢量數(shù)學(xué)。
20 多年前最好的消費(fèi)級(jí)顯卡,例如3dfx 的Voodoo5 5500和 Nvidia 的 GeForce 2 Ultra,都是出色的 SIMD 設(shè)備。然而,它們的創(chuàng)建目的是為游戲生成 3D 圖形,而不是其他任何東西。即使是專業(yè)市場(chǎng)的顯卡也只專注于渲染。
ATI 售價(jià) 2,000 美元的 ATI FireGL 3 配備了兩個(gè) IBM 芯片(一個(gè) GT1000 幾何引擎和一個(gè) RC1000 光柵器)、一個(gè)巨大的 128 MB DDR-SDRAM 以及據(jù)稱 30 GFLOPS 的處理能力。但這一切都是為了使用 OpenGL 渲染 API 加速 3D Studio Max 和 AutoCAD 等程序中的圖形。
那個(gè)時(shí)代的 GPU 無法用于其他用途,因?yàn)檗D(zhuǎn)換 3D 對(duì)象并將其轉(zhuǎn)換為監(jiān)視器圖像的過程并不涉及大量的浮點(diǎn)數(shù)學(xué)。事實(shí)上,其中很大一部分是在整數(shù)級(jí)別,并且圖形卡需要幾年的時(shí)間才能開始在整個(gè)管道中大量使用浮點(diǎn)值。
第一個(gè)是 ATI 的R300 處理器,它有 8 個(gè)獨(dú)立的像素管道,以 24 位浮點(diǎn)精度處理所有數(shù)學(xué)運(yùn)算。不幸的是,除了圖形之外,沒有其他方法可以利用這種能力——硬件和相關(guān)軟件完全以圖像為中心。
計(jì)算機(jī)工程師并沒有忘記 GPU 擁有大量 SIMD 功能,但缺乏將其應(yīng)用到其他領(lǐng)域的方法這一事實(shí)。令人驚訝的是,這是一個(gè)游戲機(jī),展示了如何解決這個(gè)棘手的問題。
***03. ***統(tǒng)一的新時(shí)代
2005年11月,微軟的Xbox 360上市,其CPU由IBM基于其標(biāo)準(zhǔn)PowerPC架構(gòu)設(shè)計(jì)和制造,GPU由ATI設(shè)計(jì)、TMSC制造。這款代號(hào)為 Xenos 的圖形芯片很特別,因?yàn)樗牟季滞耆荛_了單獨(dú)的頂點(diǎn)和像素管道的經(jīng)典方法。
取而代之的是一個(gè)三路 SIMD 陣列集群。具體來說,每個(gè)集群由 16 個(gè)向量處理器組成,每個(gè)向量處理器包含 5 個(gè)數(shù)學(xué)單元。這種布局使每個(gè)陣列能夠在每個(gè)周期對(duì) 80 個(gè)浮點(diǎn)數(shù)據(jù)值同時(shí)執(zhí)行來自線程的兩條順序指令。
這被稱為統(tǒng)一著色器架構(gòu),每個(gè)陣列可以處理任何類型的著色器。盡管 Xenos 使芯片的其他方面變得更加復(fù)雜,但它引發(fā)了一種至今仍在使用的設(shè)計(jì)范例。
在時(shí)鐘速度為 500 MHz 的情況下,整個(gè)集群理論上可以為乘法加法命令的三個(gè)線程實(shí)現(xiàn) 240 GFLOPS (500 x 16 x 80 x 2) 的處理速率。這個(gè)數(shù)字有一定的規(guī)模感,作為對(duì)比,十年前的一些世界頂級(jí)超級(jí)計(jì)算機(jī)甚至無法匹敵這個(gè)速度。
例如,桑迪亞國家實(shí)驗(yàn)室的aragon XP/S140配備 3,680 個(gè) Intel i860 CPU,峰值速度為 184 GFLOPS。到 1995 年,這臺(tái)機(jī)器已經(jīng)有幾年歷史了,芯片開發(fā)的速度很快就超過了它,但 GPU 也是如此。
CPU 多年來一直在整合自己的 SIMD 陣列,例如,英特爾最初的 Pentium MMX 有一個(gè)專用單元,用于在向量上執(zhí)行指令,最多包含 8 個(gè) 8 位整數(shù)。當(dāng) Xenos 在世界各地的家庭中使用時(shí),此類裝置的尺寸至少增加了一倍,但與 Xenos 相比,它們?nèi)匀缓苄 ?/p>
消費(fèi)級(jí)顯卡開始采用具有統(tǒng)一著色器架構(gòu)的 GPU 時(shí),它們已經(jīng)擁有比 Xbox 360 的圖形芯片明顯更高的處理速率。2006 年GeForce 8800 GTX中使用的 Nvidia G80(上圖)的理論峰值為 346 GLFOPS,而 2007 年Radeon HD 2900 XT中使用的 ATI R600則擁有 476 GLFOPS。
兩家制造商很快就在其專業(yè)模型中利用了這種計(jì)算能力。雖然價(jià)格過高,但 ATI 的 FireGL V8650 和 Nvidia 的 Tesla C870 非常適合高端科學(xué)計(jì)算機(jī)。然而,在最高級(jí)別上,全球超級(jí)計(jì)算機(jī)仍然僅依賴標(biāo)準(zhǔn) CPU。事實(shí)上,幾年后 GPU 才開始出現(xiàn)在最強(qiáng)大的系統(tǒng)中。
那么,當(dāng)它們明顯提供了巨大的處理速度時(shí),為什么不立即使用它們呢?
首先,超級(jí)計(jì)算機(jī)和類似系統(tǒng)的設(shè)計(jì)、建造和操作都極其昂貴。多年來,它們都是圍繞大量 CPU 陣列構(gòu)建的,因此集成另一個(gè)處理器并不是一朝一夕的事。此類系統(tǒng)在增加芯片數(shù)量之前需要進(jìn)行徹底的規(guī)劃和初始小規(guī)模測(cè)試。
其次,讓所有這些組件協(xié)調(diào)運(yùn)行,尤其是軟件方面,絕非易事,這也是當(dāng)時(shí) GPU 的一個(gè)重大弱點(diǎn)。雖然它們已經(jīng)變得高度可編程,但以前可供它們使用的軟件相當(dāng)有限。
Microsoft 的 HLSL(高級(jí)著色器語言)、Nvidia 的Cg 庫和 OpenGL 的 GLSL 使訪問圖形芯片的處理能力變得簡單,盡管純粹是為了渲染。
統(tǒng)一著色器架構(gòu) GPU 改變了這一切。2006 年,ATI(當(dāng)時(shí)是AMD 的子公司)和 Nvidia 發(fā)布了軟件工具包,旨在將這種能力不僅僅用于圖形,其 API 分別稱為CTM(Close To Metal)和CUDA(Compute Unified Device Architecture)。
然而,科學(xué)和數(shù)據(jù)處理社區(qū)真正需要的是一個(gè)全面的軟件包,它將大量的 CPU 和 GPU(通常稱為異構(gòu)平臺(tái))視為由眾多計(jì)算設(shè)備組成的單個(gè)實(shí)體。
2009年,他們的需求得到了滿足。OpenCL最初由 Apple 開發(fā),由 Khronos Group(幾年前吸收了 OpenGL)發(fā)布,成為在日常圖形之外使用 GPU 的事實(shí)上的軟件平臺(tái),或者該領(lǐng)域當(dāng)時(shí)被稱為 GPGPU(通用GPU 上的計(jì)算, Mark Harris創(chuàng)造的術(shù)語)。
***04. ***GPU 進(jìn)入計(jì)算競賽
與廣闊的技術(shù)評(píng)論世界不同,全球范圍內(nèi)并沒有數(shù)百名評(píng)論者測(cè)試超級(jí)計(jì)算機(jī)的性能主張。然而,德國曼海姆大學(xué)于 20 世紀(jì) 90 年代初啟動(dòng)的一個(gè)正在進(jìn)行的項(xiàng)目正是致力于實(shí)現(xiàn)這一目標(biāo)。該組織被稱為“TOP500”,每年兩次發(fā)布全球最強(qiáng)大的 10 臺(tái)超級(jí)計(jì)算機(jī)排行榜。
第一個(gè)夸耀 GPU 的條目出現(xiàn)在 2010 年,中國有兩個(gè)系統(tǒng)——星云和天河一號(hào)。他們分別使用 Nvidia 的Tesla C2050(本質(zhì)上是 GeForce GTX 470,如下)和 AMD 的Radeon HD 4870卡,前者的理論峰值為 2,984 TFLOPS。
在高端 GPGPU 的早期階段,Nvidia 是為計(jì)算巨頭配備的首選供應(yīng)商,不是因?yàn)樾阅埽ˋMD 的 Radeon 卡通常提供更高程度的處理性能),而是因?yàn)檐浖С?。CUDA 經(jīng)歷了快速發(fā)展,幾年后 AMD 才找到合適的替代方案,鼓勵(lì)用戶改用 OpenCL。
然而,英偉達(dá)并沒有完全主導(dǎo)市場(chǎng),英特爾的至強(qiáng)融核處理器試圖占據(jù)一席之地。這些大型芯片源自一個(gè)名為 Larrabee 的已中止的 GPU 項(xiàng)目,是一種特殊的 CPU-GPU 混合體,由多個(gè)類似奔騰的核心(CPU 部分)與大型浮點(diǎn)單元(GPU 部分)配對(duì)組成。
對(duì) Tesla C2050 內(nèi)部結(jié)構(gòu)的檢查揭示了 14 個(gè)稱為流式多處理器 (SM) 的塊,由緩存和中央控制器劃分。每一個(gè)都包含 32 組兩個(gè)邏輯電路(Nvidia 將其標(biāo)記為 CUDA 核心),用于執(zhí)行所有數(shù)學(xué)運(yùn)算 - 一組用于整數(shù)值,另一組用于浮點(diǎn)數(shù)。在后一種情況下,內(nèi)核可以在每個(gè)時(shí)鐘周期以單(32 位)精度管理一次 FMA(融合乘加)操作;雙精度(64 位)運(yùn)算至少需要兩個(gè)時(shí)鐘周期。
Xeon Phi 芯片(中的浮點(diǎn)單元看起來有些相似,只是每個(gè)內(nèi)核處理的數(shù)據(jù)值只有 C2050 中 SM 的一半。盡管如此,由于與 Tesla 的 14 個(gè)重復(fù)核心相比,有 32 個(gè)重復(fù)核心,單個(gè) Xeon Phi 處理器總體上每個(gè)時(shí)鐘周期可以處理更多的值。然而,英特爾首次發(fā)布的該芯片更多的是原型機(jī),無法充分發(fā)揮其潛力——英偉達(dá)的產(chǎn)品運(yùn)行速度更快,功耗更低,并被證明是一款卓越的產(chǎn)品。
這將成為 AMD、英特爾和 Nvidia 之間三路 GPGPU 之爭中反復(fù)出現(xiàn)的主題。一種型號(hào)可能擁有數(shù)量較多的處理核心,而另一種型號(hào)可能具有更快的時(shí)鐘速度或更強(qiáng)大的緩存系統(tǒng)。
CPU 對(duì)于所有類型的計(jì)算仍然至關(guān)重要,許多超級(jí)計(jì)算機(jī)和高端計(jì)算系統(tǒng)仍然由 AMD 或英特爾處理器組成。雖然單個(gè) CPU 無法與普通 GPU 的 SIMD 性能競爭,但當(dāng)數(shù)千個(gè) CPU 連接在一起時(shí),它們就證明足夠了。然而,此類系統(tǒng)缺乏功效。
例如,在天河一號(hào)使用Radeon HD 4870卡的同時(shí),AMD最大的服務(wù)器CPU(12核Opteron 6176 SE)也開始流行。對(duì)于 140 W 左右的功耗,CPU 理論上可以達(dá)到 220 GFLOPS,而上述 GPU 的峰值性能可達(dá)到 1,200 GFLOPS,僅多出 10 W,而且成本僅為其一小部分。
***05. ***不再“只是”顯卡
到了 2013 年,不僅僅是世界上的超級(jí)計(jì)算機(jī)在集體利用 GPU 的能力進(jìn)行并行計(jì)算。Nvidia 正在積極推廣其GRID 平臺(tái),這是一種用于科學(xué)和其他應(yīng)用的 GPU 虛擬化服務(wù)。最初是作為托管基于云的游戲的系統(tǒng)而推出的,對(duì)大規(guī)模、經(jīng)濟(jì)實(shí)惠的 GPGPU 不斷增長的需求使得這一轉(zhuǎn)變不可避免。在其年度技術(shù)會(huì)議上,GRID 被認(rèn)為是各領(lǐng)域工程師的重要工具。
在同一事件中,GPU 公司展示了代號(hào)為 Volta 的未來架構(gòu)。然而,公布的細(xì)節(jié)很少,普遍的假設(shè)是這將是另一款服務(wù)于 Nvidia 所有市場(chǎng)的芯片。
與此同時(shí),AMD 也在做類似的事情,在其專注于游戲的 Radeon 系列以及 FirePro 和 Radeon Sky 服務(wù)器卡中利用定期更新的 Graphics Core Next (GCN) 設(shè)計(jì)。那時(shí),性能數(shù)據(jù)已經(jīng)令人震驚——FirePro W9100 的峰值 FP32(32 位浮點(diǎn))吞吐量為 5.2 TFLOPS,這個(gè)數(shù)字對(duì)于不到二十年前的超級(jí)計(jì)算機(jī)來說是不可想象的。
當(dāng)然,GPU 仍然主要是為 3D 圖形而設(shè)計(jì)的,但渲染技術(shù)的進(jìn)步意味著這些芯片必須越來越擅長處理一般計(jì)算工作負(fù)載。唯一的問題是它們執(zhí)行高精度浮點(diǎn)數(shù)學(xué)(即 FP64 或更高)的能力有限??v觀2015 年頂級(jí)超級(jí)計(jì)算機(jī),與完全基于 CPU 的超級(jí)計(jì)算機(jī)相比,使用 GPU(英特爾的 Xeon Phi 或 Nvidia 的 Tesla)的數(shù)量相對(duì)較少。
當(dāng) Nvidia 在 2016 年推出Pascal 架構(gòu)時(shí),一切都發(fā)生了變化。這是該公司首次嘗試專門為高性能計(jì)算市場(chǎng)設(shè)計(jì) GPU,其他 GPU 則用于多個(gè)領(lǐng)域。前者只生產(chǎn)過一款(GP100),并且只產(chǎn)生了 5 種產(chǎn)品,但之前所有架構(gòu)都只配備少數(shù) FP64 內(nèi)核,而這款芯片卻容納了近 2,000 個(gè)內(nèi)核。
Tesla P100 提供超過 9 TFLOPS 的 FP32 處理能力以及 FP64 處理能力的一半,其功能非常強(qiáng)大。AMD 的 Radeon Pro W9100 使用其 Vega 10 芯片,在 FP32 中速度快了 30%,但在 FP64 中慢了 800%。此時(shí),英特爾因銷售不佳而瀕臨停產(chǎn) Xeon Phi 系列。
一年后,Nvidia 終于發(fā)布了 Volta,這表明該公司不僅僅對(duì)將其 GPU 引入 HPC 和數(shù)據(jù)處理市場(chǎng)感興趣,它還瞄準(zhǔn)了另一個(gè)市場(chǎng)。
***06. ***神經(jīng)元、網(wǎng)絡(luò),天哪!
深度學(xué)習(xí)是統(tǒng)稱為機(jī)器學(xué)習(xí)的更廣泛學(xué)科中的一個(gè)領(lǐng)域,機(jī)器學(xué)習(xí)本身是人工智能的一個(gè)子集。它涉及使用稱為神經(jīng)網(wǎng)絡(luò)的復(fù)雜數(shù)學(xué)模型,從給定數(shù)據(jù)中提取信息,例如確定所呈現(xiàn)的圖像描繪特定動(dòng)物的概率。為此,模型需要進(jìn)行“訓(xùn)練”——在本例中,顯示了數(shù)百萬張?jiān)搫?dòng)物的圖像,以及數(shù)百萬張不顯示該動(dòng)物的圖像。
所涉及的數(shù)學(xué)植根于矩陣和張量計(jì)算。幾十年來,此類工作負(fù)載只適合基于 CPU 的大型超級(jí)計(jì)算機(jī)。然而,早在 2000 年代,GPU 就顯然非常適合此類任務(wù)。
盡管如此,英偉達(dá)還是押注于深度學(xué)習(xí)市場(chǎng)的大幅擴(kuò)張,并在其 Volta 架構(gòu)中添加了額外的功能,使其在該領(lǐng)域脫穎而出。這些是作為張量核心銷售的 FP16 邏輯單元組,作為一個(gè)大型陣列一起運(yùn)行,但功能非常有限。
事實(shí)上,它們只執(zhí)行一項(xiàng)功能——將兩個(gè) FP16 4x4 矩陣相乘,然后將另一個(gè) FP16 或 FP32 4x4 矩陣與該結(jié)果相加(這一過程稱為 GEMM 運(yùn)算)。Nvidia 之前的 GPU 以及競爭對(duì)手的 GPU 也可以執(zhí)行此類計(jì)算,但速度遠(yuǎn)不及 Volta。GV100 是唯一使用該架構(gòu)制造的 GPU,總共包含 512 個(gè)張量核心,每個(gè)核心能夠在每個(gè)時(shí)鐘周期執(zhí)行 64 個(gè) GEMM。
根據(jù)數(shù)據(jù)集中矩陣的大小以及所使用的浮點(diǎn)大小,Tesla V100 卡在這些張量計(jì)算中理論上可以達(dá)到 125 TFLOPS。Volta 顯然是為小眾市場(chǎng)設(shè)計(jì)的,但 GP100 在超級(jí)計(jì)算機(jī)領(lǐng)域的進(jìn)軍有限,而新的 Tesla 型號(hào)則迅速被采用。
PC游戲愛好者會(huì)知道,Nvidia隨后在隨后的圖靈架構(gòu)中將張量核心添加到其通用消費(fèi)產(chǎn)品中,并開發(fā)了一種稱為深度學(xué)習(xí)超級(jí)采樣(DLSS)的升級(jí)技術(shù)。最新版本使用 GPU 中的核心在放大圖像上運(yùn)行神經(jīng)網(wǎng)絡(luò),糾正幀中的任何偽影。
在短時(shí)間內(nèi),Nvidia 獨(dú)占了 GPU 加速的深度學(xué)習(xí)市場(chǎng),其數(shù)據(jù)中心部門的收入大幅增長——2017 財(cái)年增長率為 145%,2018 財(cái)年增長率為 133%,2019 財(cái)年增長率為 52%。截至 2019 財(cái)年末,HPC、深度學(xué)習(xí)等領(lǐng)域的銷售額總計(jì) 29 億美元。
然而,只要有錢,競爭就不可避免。2018 年,谷歌開始通過云服務(wù)提供對(duì)其內(nèi)部開發(fā)的張量處理芯片的訪問。亞馬遜很快也緊隨其后,推出了專用 CPU AWS Graviton。與此同時(shí),AMD 正在重組其 GPU 部門,形成兩條不同的產(chǎn)品線:一條主要用于游戲 (RDNA),另一條專門用于計(jì)算 (CDNA)。
雖然 RDNA 與其前身明顯不同,但 CDNA 在很大程度上是 GCN 的自然演變,盡管規(guī)模擴(kuò)大到了一個(gè)巨大的水平??纯串?dāng)今用于超級(jí)計(jì)算機(jī)、數(shù)據(jù)服務(wù)器和人工智能機(jī)器的 GPU,一切都非常巨大。
AMD 的 CDNA 2 驅(qū)動(dòng)的MI250X擁有 220 個(gè)計(jì)算單元,提供略低于 48 TFLOPS 的雙精度 FP64 吞吐量和 128 GB 的高帶寬內(nèi)存 (HBM2e),這兩個(gè)方面在 HPC 應(yīng)用中都備受追捧。Nvidia 的 GH100 芯片采用Hopper 架構(gòu)和 576 個(gè) Tensor Core,有可能達(dá)到 4000 TOPS,在 AI 矩陣計(jì)算中采用低精度 INT8 數(shù)字格式。
英特爾的Ponte Vecchio GPU 同樣龐大,擁有 1000 億個(gè)晶體管,AMD 即將推出的 MI300 擁有 460 億個(gè)晶體管,包括多個(gè) CPU、顯卡和內(nèi)存小芯片。
然而,它們共有的一件事是它們絕對(duì)不是 GPU:它們不是 GPU。早在英偉達(dá)將該術(shù)語用作營銷工具之前,該縮寫詞就代表圖形處理單元。AMD 的 MI250X 沒有任何渲染輸出單元 (ROP),甚至 GH100 也只擁有類似于 GeForce GTX 1050 的Direct3D 性能,使得 GPU 中的“G”變得無關(guān)緊要。
那么,我們可以稱呼它們什么呢?“GPGPU”并不理想,因?yàn)樗且粋€(gè)笨拙的短語,指的是在通用計(jì)算中使用 GPU,而不是設(shè)備本身?!癏PCU”(高性能計(jì)算單元)也好不了多少。但也許這并不重要。畢竟,“CPU”一詞非常廣泛,涵蓋了各種不同的處理器和用途。
***07. ***GPU 接下來要征服什么?
AMD、英特爾、Nvidia 和其他數(shù)十家公司在 GPU 研發(fā)上投入了數(shù)十億美元,當(dāng)今的圖形處理器不會(huì)很快被任何截然不同的產(chǎn)品所取代。對(duì)于渲染,最新的 API 和使用它們的軟件包(例如游戲引擎和 CAD 應(yīng)用程序)通常與運(yùn)行代碼的硬件無關(guān),因此從理論上講,它們可以適應(yīng)全新的東西。
然而,GPU 中專門用于圖形的組件相對(duì)較少 - 三角形設(shè)置引擎和 ROP 是最明顯的組件,并且最近版本中的光線追蹤單元也高度專業(yè)化。然而,其余部分本質(zhì)上是大規(guī)模并行 SIMD 芯片,由強(qiáng)大而復(fù)雜的內(nèi)存/緩存系統(tǒng)支持。
基本設(shè)計(jì)與以往一樣好,未來的任何改進(jìn)都與半導(dǎo)體制造技術(shù)的進(jìn)步緊密相關(guān)。換句話說,它們只能通過容納更多邏輯單元、以更高的時(shí)鐘速度運(yùn)行或兩者的組合來改進(jìn)。
當(dāng)然,它們可以合并新功能,使其能夠在更廣泛的場(chǎng)景中發(fā)揮作用。在 GPU 的歷史上,這種情況已經(jīng)發(fā)生過好幾次,不過向統(tǒng)一著色器架構(gòu)的過渡尤為重要。雖然最好有專用硬件來處理張量或光線追蹤計(jì)算,但現(xiàn)代 GPU 的核心能夠管理這一切,盡管速度較慢。
這就是為什么 MI250 和 GH100 等產(chǎn)品與臺(tái)式電腦的同類產(chǎn)品非常相似,未來用于 HPC 和 AI 的設(shè)計(jì)很可能會(huì)遵循這一趨勢(shì)。那么,如果芯片本身不會(huì)發(fā)生重大變化,那么它們的應(yīng)用又如何呢?
鑒于與 AI 相關(guān)的任何事物本質(zhì)上都是計(jì)算的一個(gè)分支,因此只要需要執(zhí)行大量 SIMD 計(jì)算,就可能會(huì)使用 GPU。雖然科學(xué)和工程領(lǐng)域沒有多少領(lǐng)域尚未使用此類處理器,但我們可能會(huì)看到 GPU 衍生產(chǎn)品的使用激增。
谷歌的 Coral 加速器板配有兩個(gè) edgeTPU 芯片
目前人們可以購買配備微型芯片的手機(jī),其唯一功能是加速張量計(jì)算。隨著 ChatGPT 等工具的功能和普及度不斷增強(qiáng),我們將看到更多配備此類硬件的設(shè)備。
不起眼的 GPU 已經(jīng)從僅僅比 CPU 更快地運(yùn)行游戲的設(shè)備發(fā)展成為通用加速器,為全球的工作站、服務(wù)器和超級(jí)計(jì)算機(jī)提供動(dòng)力。全球數(shù)百萬人每天都在使用它——不僅在我們的計(jì)算機(jī)、電話、電視和流媒體設(shè)備中,而且在我們使用包含語音和圖像識(shí)別或提供音樂和視頻推薦的服務(wù)時(shí)也是如此。
GPU 真正的下一步可能是一個(gè)未知的領(lǐng)域,但有一點(diǎn)是肯定的,圖形處理單元將在未來幾十年內(nèi)繼續(xù)成為計(jì)算和人工智能的主要工具。
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163759 -
OpenGL
+關(guān)注
關(guān)注
1文章
85瀏覽量
29243 -
SIMD
+關(guān)注
關(guān)注
0文章
33瀏覽量
10289 -
專用處理器
+關(guān)注
關(guān)注
0文章
5瀏覽量
9353 -
GPU芯片
+關(guān)注
關(guān)注
1文章
303瀏覽量
5804
原文標(biāo)題:從像素推動(dòng)器到AI計(jì)算引擎,GPU的演變之路
文章出處:【微信號(hào):算力基建,微信公眾號(hào):算力基建】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論