GPU持續(xù)進(jìn)化。 ? 三十年前,CPU和其他專用處理器處理幾乎所有計(jì)算任務(wù)。那個(gè)時(shí)代的顯卡可以加速Windows和應(yīng)用程序中2D形狀的繪制,但沒有其他用途。
快進(jìn)到今天,GPU已經(jīng)成為行業(yè)中最主要的芯片之一。
如今,GPU不再僅僅是用于圖形處理的設(shè)備——實(shí)際上機(jī)器學(xué)習(xí)和高性能計(jì)算已經(jīng)嚴(yán)重依賴于這個(gè)看似微不足道的GPU的處理能力。讓我們一起探討這一芯片是如何從一個(gè)樸素的像素處理器演變成具有強(qiáng)大浮點(diǎn)計(jì)算能力的核心設(shè)備的。
起初CPU主宰一切
讓我們回到20世紀(jì)90年代末。高性能計(jì)算領(lǐng)域,涵蓋了超級計(jì)算機(jī)上的科學(xué)研究、標(biāo)準(zhǔn)服務(wù)器上的數(shù)據(jù)處理以及工作站上的工程和設(shè)計(jì)任務(wù),完全依賴于兩種類型的CPU:1)專為某一特定目的而設(shè)計(jì)的專用處理器;2)來自AMD、IBM或英特爾的現(xiàn)成芯片。
ASCI紅色超級計(jì)算機(jī)是1997年最強(qiáng)大的超級計(jì)算機(jī)之一,由9,632顆英特爾奔騰II Overdrive處理器組成(如下圖所示)。每個(gè)處理器單元運(yùn)行在333 MHz的頻率下,系統(tǒng)的理論峰值計(jì)算性能達(dá)到了超過3.2 TFLOPS(每秒萬億次浮點(diǎn)運(yùn)算)。
在本文中,我們經(jīng)常會提及TFLOPS,因此有必要花一些時(shí)間來解釋一下它的含義。在計(jì)算機(jī)科學(xué)中,浮點(diǎn)數(shù)(floating points,簡稱浮點(diǎn))是表示非整數(shù)值的數(shù)據(jù)類型,例如6.2815或0.0044。整數(shù)值常用于進(jìn)行控制計(jì)算機(jī)及其上運(yùn)行的任何軟件所需的計(jì)算。
浮點(diǎn)數(shù)對于精度至關(guān)重要的情況至關(guān)重要,尤其是與科學(xué)或工程相關(guān)的任何事物。即使是一個(gè)簡單的計(jì)算,比如求圓的周長,也至少涉及到一個(gè)浮點(diǎn)數(shù)值。
多年來,CPU一直擁有用于在整數(shù)和浮點(diǎn)數(shù)上執(zhí)行邏輯運(yùn)算的單獨(dú)電路。在前文提到的奔騰II過載版中,它可以在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行一個(gè)基本的浮點(diǎn)操作(乘法或加法)。理論上,這就是為什么ASCI Red的浮點(diǎn)峰值性能為9,632個(gè)CPU x 3.33億個(gè)時(shí)鐘周期 x 1操作/周期 = 3,207,456百萬FLOPS。
這些數(shù)據(jù)是基于理想條件(例如,使用最簡單的指令處理適合緩存的數(shù)據(jù)),在現(xiàn)實(shí)中很難實(shí)現(xiàn)。然而,它們?yōu)樵u估系統(tǒng)潛在性能提供了一個(gè)很好的參考。
其他超級計(jì)算機(jī)也擁有類似數(shù)量的標(biāo)準(zhǔn)處理器——位于勞倫斯利弗莫爾國家實(shí)驗(yàn)室的藍(lán)色太平洋使用了5808個(gè)IBM的PowerPC 604e芯片,洛斯阿拉莫斯國家實(shí)驗(yàn)室的藍(lán)色山脈(見上圖)容納了6144個(gè)MIPS Technologies R1000芯片。
要達(dá)到太浮點(diǎn)運(yùn)算級別,需要數(shù)千個(gè)CPU,以及大量的RAM和硬盤存儲作為支持。因?yàn)檫@些設(shè)備的數(shù)學(xué)需求如此之高,直到現(xiàn)在這種情況仍然存在。
當(dāng)我們在學(xué)校的物理、化學(xué)和其他學(xué)科中第一次接觸方程式時(shí),一切都是一維的。換句話說,我們對距離、速度、質(zhì)量、時(shí)間等使用單一的數(shù)字。然而,為了準(zhǔn)確地建模和模擬現(xiàn)象,需要更多的維度,數(shù)學(xué)進(jìn)入了向量、矩陣和張量的領(lǐng)域。
這些在數(shù)學(xué)中被視為單一實(shí)體,但包含多個(gè)值,這意味著任何進(jìn)行計(jì)算的計(jì)算機(jī)需要同時(shí)處理大量數(shù)字??紤]到當(dāng)時(shí)的CPU每周期只能處理一到兩個(gè)浮點(diǎn)數(shù),因此需要數(shù)千個(gè)CPU。
SIMD加入戰(zhàn)局:MMX,3DNow!和SSE
1997年,英特爾更新了Pentium CPU系列,引入了一項(xiàng)名為MMX的技術(shù)擴(kuò)展——一組在核心內(nèi)部利用八個(gè)附加寄存器的指令。每個(gè)寄存器被設(shè)計(jì)成存儲一到四個(gè)整數(shù)值。這種系統(tǒng)允許處理器在多個(gè)數(shù)值上同時(shí)執(zhí)行單條指令,這種方法更為人所熟知的是SIMD(單指令,多數(shù)據(jù))。
一年后,AMD推出了自己的版本,名為3DNow!。由于寄存器可以存儲浮點(diǎn)值,這使得3DNow!明顯優(yōu)于MMX。又過了一年,英特爾在奔騰III中引入了SSE(流式單指令多數(shù)據(jù)擴(kuò)展),解決了MMX中的問題。
3DNow! 首次亮相于 AMD K6-2 CPU。來源:Fritzchens Fritz
隨著時(shí)間推移,高性能計(jì)算機(jī)設(shè)計(jì)者們已經(jīng)能使用可高效處理向量數(shù)學(xué)的標(biāo)準(zhǔn)處理器。
經(jīng)過千百萬次的擴(kuò)展,這些處理器可以同樣高效地處理矩陣和張量。盡管取得了這一進(jìn)步,但超級計(jì)算機(jī)領(lǐng)域仍更青睞舊式或?qū)S眯酒?,因?yàn)檫@些新擴(kuò)展并未專為此類任務(wù)而設(shè)計(jì)。此外,還有另一種比AMD或Intel的任何CPU更擅長SIMD處理的迅速流行處理器:GPU。
在圖形處理器的早期,CPU處理場景中組成三角形的計(jì)算(因此,AMD為其SIMD實(shí)現(xiàn)使用了3DNow!這個(gè)名字)。然而,像素的著色和紋理處理完全由GPU負(fù)責(zé),并且這項(xiàng)工作的許多方面涉及到矢量數(shù)學(xué)。
20多年前最好的消費(fèi)級顯卡,如3dfx Voodoo5 5500和Nvidia GeForce 2 Ultra,都是出色的SIMD設(shè)備。然而,它們是為制作游戲的3D圖形而創(chuàng)建,沒有其他用途。即使在專業(yè)市場上的顯卡也完全專注于渲染。
ATI的 ATI FireGL 3 配備了兩個(gè)IBM芯片(一個(gè)GT1000幾何引擎和一個(gè)RC1000柵格化器),高達(dá)128 MB的DDR-SDRAM,以及聲稱的30 GFLOPS的處理能力。然而,所有這些都是為了加速像3D Studio Max和AutoCAD這樣的程序中的圖形渲染,使用的是OpenGL渲染API。
那個(gè)時(shí)代的GPU并沒有配備用于其他用途的功能,因?yàn)閷?D對象變換并轉(zhuǎn)換為顯示器圖像的過程并不涉及大量的浮點(diǎn)運(yùn)算。實(shí)際上,其中很大一部分是整數(shù)級別的運(yùn)算,而且在顯卡開始在整個(gè)管道大量使用浮點(diǎn)值之前還需要幾年時(shí)間。
其中最早的一個(gè)是ATI的R300處理器,它擁有8個(gè)獨(dú)立的像素管線,可以以24位浮點(diǎn)精度處理所有數(shù)學(xué)運(yùn)算。遺憾的是,除了圖形處理之外,無法利用其強(qiáng)大的性能 ——硬件和相關(guān)軟件都完全以圖像為中心。
計(jì)算機(jī)工程師并非對于GPU具有大量SIMD能力但缺乏將其應(yīng)用于其他領(lǐng)域的途徑一無所知。令人驚訝的是,正是一款游戲主機(jī)向我們展示了如何解決這個(gè)棘手問題。
統(tǒng)一的新時(shí)代
2005年11月,微軟的Xbox 360上市,搭載了一款由IBM設(shè)計(jì)制造、基于PowerPC架構(gòu)的CPU,以及一款由ATI設(shè)計(jì)、由TSMC制造的GPU。
這款名為Xenos的顯卡芯片非常特殊,因?yàn)槠洳季滞耆饤壛藗鹘y(tǒng)的分離頂點(diǎn)和像素管道的方法。
Xenos激發(fā)了一種至今仍在使用的設(shè)計(jì)范例的出現(xiàn)。
取而代之的是一個(gè)由三組SIMD陣列組成的簇。具體來說,每個(gè)簇包含16個(gè)向量處理器,每個(gè)處理器包含5個(gè)數(shù)學(xué)單元。這種布局使每個(gè)陣列能夠在一個(gè)周期內(nèi)同時(shí)對80個(gè)浮點(diǎn)數(shù)據(jù)值執(zhí)行來自線程的兩個(gè)順序指令。
統(tǒng)一著色器架構(gòu)使得每個(gè)陣列都能處理任何類型的著色器。盡管這使芯片的其他方面變得更為復(fù)雜,但Xenos引發(fā)的設(shè)計(jì)模式至今仍在使用。在500 MHz的時(shí)鐘速度下,整個(gè)集群理論上可以實(shí)現(xiàn)240 GFLOPS(500 x 16 x 80 x 2)的處理速度,用于執(zhí)行三個(gè)線程的乘-加指令。
為了讓這個(gè)數(shù)字更具規(guī)模感,我們可以將其與10年前世界頂級超算的速度進(jìn)行對比。例如,1994年位居世界超算之首的桑迪亞國家實(shí)驗(yàn)室的Aragon XP/S140,其擁有3,680個(gè)英特爾i860 CPU,峰值達(dá)到了184 GFLOPS。芯片發(fā)展的步伐迅速超過了這臺機(jī)器,但GPU的情況也是如此。
多年來,CPU已經(jīng)將SIMD陣列集成到自己的設(shè)計(jì)中,例如,英特爾最早的奔騰MMX就擁有一個(gè)專用單元來處理向量上的命令,其中包括多達(dá)8個(gè)8位整數(shù)。到Xbox的Xenos在全球家庭中應(yīng)用的時(shí)候,這樣的單元至少已經(jīng)擴(kuò)大了兩倍,但相較于Xenos中的單元,它們?nèi)匀伙@得很小。
當(dāng)消費(fèi)級顯卡開始采用統(tǒng)一著色器架構(gòu)的GPU時(shí),它們已經(jīng)具有比Xbox 360圖形芯片更高的處理速率。
英偉達(dá)的G80(如上圖所示),用于GeForce 8800 GTX(2006)的理論峰值達(dá)到了346 GLFOPS,而ATI的R600在Radeon HD 2900 XT(2007)上宣稱達(dá)到了476 GLFOPS。
兩大顯卡制造商很快在其專業(yè)型號上利用這種計(jì)算能力。雖然價(jià)格昂貴,但ATI FireGL V8650和Nvidia Tesla C870非常適合高端科學(xué)計(jì)算機(jī)。然而,在最高水平上,全球的超級計(jì)算機(jī)仍繼續(xù)依賴標(biāo)準(zhǔn)CPU。事實(shí)上,在GPU開始出現(xiàn)在最強(qiáng)大的系統(tǒng)之前還需要過去幾年時(shí)間。
那么,鑒于GPU顯然能提供顯著的處理速度,為什么它們一開始就沒有被使用呢?
超級計(jì)算機(jī)及類似系統(tǒng)的設(shè)計(jì)、建造和運(yùn)行成本極高。多年來,它們都是圍繞著大量CPU構(gòu)建的,因此,一夜之間整合其他處理器并非易事。這樣的系統(tǒng)需要進(jìn)行徹底的規(guī)劃和初步的小規(guī)模測試,然后逐步增加芯片數(shù)量。
其次,要讓所有這些組件在軟件方面協(xié)調(diào)運(yùn)行并非易事,這對當(dāng)時(shí)的GPU來說是一個(gè)重大的弱點(diǎn)。盡管GPU已經(jīng)具有高度可編程性,但之前為它們提供的軟件還是相當(dāng)有限的。
Microsoft的HLSL(高級著色器語言),英偉達(dá)的Cg庫和OpenGL的GLSL使訪問圖形芯片的處理能力變得簡單,盡管這僅用于渲染。
所有這些都隨著統(tǒng)一著色器架構(gòu)GPU的出現(xiàn)而發(fā)生了改變。
在2006年,當(dāng)時(shí)已成為AMD子公司的ATI和英偉達(dá)發(fā)布了旨在將此功能用于不僅僅是圖形處理的軟件工具包,它們分別使用名為CTM(Close To Metal)和CUDA(計(jì)算統(tǒng)一設(shè)備架構(gòu))的API。
科學(xué)和數(shù)據(jù)處理領(lǐng)域的研究人員真正需要的是一個(gè)全面的解決方案——一個(gè)能將龐大的CPU和GPU陣列(通常稱為異構(gòu)平臺)作為一個(gè)由眾多計(jì)算設(shè)備組成的單一實(shí)體。
2009年,他們的需求得到了滿足。最初,OpenCL是由蘋果公司開發(fā)的,后來由接管OpenGL的Khronos Group發(fā)布。如今,OpenCL已成為在日常圖形外使用GPU的事實(shí)上的統(tǒng)一軟件平臺。而當(dāng)時(shí)人們稱這個(gè)領(lǐng)域?yàn)镚PGPU,即指在GPU上進(jìn)行通用計(jì)算,這個(gè)概念由Mark Harris首創(chuàng)。
GPU加入計(jì)算競賽
與龐大的科技評論世界不同,全球并沒有數(shù)百名評論家在測試超級計(jì)算機(jī)的性能聲明。然而,自20世紀(jì)90年代初以來,德國曼海姆大學(xué)的一個(gè)持續(xù)進(jìn)行的項(xiàng)目就旨在實(shí)現(xiàn)這一目標(biāo)。
被稱為TOP500的組織,每年發(fā)布兩次全球十大最強(qiáng)大超級計(jì)算機(jī)的排名榜單。
2010年榜單上首次出現(xiàn)了裝備GPU的計(jì)算機(jī),這兩臺來自中國的系統(tǒng)分別是星云和天河一號。星云使用了英偉達(dá)的Tesla C2050(實(shí)質(zhì)上是GeForce GTX 470,如下圖所示),而天河一號則采用了AMD的Radeon HD 4870芯片。前者具有理論峰值2,984 TFLOPS。
在早期高端GPGPU時(shí)代,英偉達(dá)成為了配置計(jì)算巨擘的首選廠商,并非因?yàn)樾阅苌系膬?yōu)勢——通常AMD的Radeon顯卡具有更高的處理性能——而是因?yàn)檐浖С?。CUDA得到了快速的發(fā)展,而在AMD推出合適的替代方案之前,還需要幾年的時(shí)間,這就促使用戶選擇使用OpenCL。
然而,英偉達(dá)并沒有完全壟斷市場。英特爾的Xeon Phi處理器也試圖在市場上占有一席之地。這些處理器源自一個(gè)被終止的名為Larrabee的GPU項(xiàng)目,它構(gòu)成了一個(gè)奇特的CPU-GPU混合體。Xeon Phi處理器由多個(gè)類似Pentium的核心(即CPU部分)組成,并搭配了大型浮點(diǎn)運(yùn)算單元(即GPU部分)。
對Nvidia Tesla C2050內(nèi)部的檢查展示了14個(gè)被稱為流式多處理器(SMs)的模塊,這些模塊通過緩存和中央控制器進(jìn)行劃分。每個(gè)模塊中包含32組邏輯電路(英偉達(dá)稱之為CUDA核心),分別負(fù)責(zé)執(zhí)行整數(shù)值和浮點(diǎn)數(shù)的所有數(shù)學(xué)運(yùn)算。對于后者,每個(gè)核心每個(gè)時(shí)鐘周期可以處理單精度(32位)的一次FMA(融合乘加)操作;而雙精度(64位)操作至少需要兩個(gè)時(shí)鐘周期。
Xeon Phi芯片中的浮點(diǎn)處理單元(如下圖所示)似乎有相似之處,但每個(gè)核心處理的數(shù)據(jù)量只有C2050中一個(gè)SM的一半。盡管如此,與特斯拉的14個(gè)SM相比,單個(gè)Xeon Phi處理器有32個(gè)重復(fù)的核心,因此每個(gè)時(shí)鐘周期總體上可以處理更多的數(shù)據(jù)。然而,英特爾首次發(fā)布的芯片更像是一個(gè)原型,并未完全發(fā)揮其潛力。相較而言,英偉達(dá)的產(chǎn)品運(yùn)行速度更快、功耗更低,并最終被證明更勝一籌。
在AMD、英特爾和英偉達(dá)三家公司的GPGPU競爭中,這成為了一個(gè)反復(fù)出現(xiàn)的主題。其中一個(gè)公司的產(chǎn)品可能在處理核心數(shù)量上占優(yōu)勢,而另一個(gè)公司的產(chǎn)品可能在時(shí)鐘速度上更快,或擁有更強(qiáng)大的緩存系統(tǒng)。
CPU在各種類型的計(jì)算中仍然不可或缺,許多超級計(jì)算機(jī)和高端計(jì)算系統(tǒng)仍然采用AMD或Intel處理器。雖然單個(gè)CPU在SIMD性能上無法與一般GPU競爭,但當(dāng)它們以數(shù)千計(jì)連接在一起時(shí),表現(xiàn)就相當(dāng)不錯(cuò)了。然而,這樣的系統(tǒng)在功耗效率方面欠佳。
例如,在Radeon HD 4870 GPU被用于天河一號超級計(jì)算機(jī)的同時(shí),AMD的頂級服務(wù)器CPU(12核Opteron 6176 SE)也在廣泛應(yīng)用。雖然CPU的功耗約為140W,理論上可達(dá)到220 GFLOPS的性能,但僅增加10W功耗的GPU則可提供高達(dá)1,200 GFLOPS的峰值性能,且成本只是CPU的一小部分。
一塊能做更多事的“小顯卡”
幾年后,不僅是世界上的超級計(jì)算機(jī)在使用GPU進(jìn)行大量并行計(jì)算,英偉達(dá)也積極推廣其GRID平臺,這是一項(xiàng)用于科學(xué)和其他應(yīng)用的GPU虛擬化服務(wù)。最初,它作為一個(gè)托管云端游戲的系統(tǒng)推出,但在GPGPU大規(guī)模、低成本需求不斷增長的推動(dòng)下,發(fā)生了這一轉(zhuǎn)變。在英偉達(dá)的年度技術(shù)會議上,GRID作為各個(gè)行業(yè)工程師們的重要工具展示出來。
在同一活動(dòng)中,GPU制造商展示了一個(gè)未來架構(gòu)的概要,代號為Volta。發(fā)布的細(xì)節(jié)很少,人們普遍認(rèn)為這將是另一款面向英偉達(dá)所有市場的芯片。
與此同時(shí),AMD也在開展類似的項(xiàng)目。他們通過不斷更新其游戲型 Radeon 系列、服務(wù)器型 FirePro 和 Radeon Sky 系列顯卡的圖形核心下一代(GCN)設(shè)計(jì)。當(dāng)時(shí)的性能表現(xiàn)令人驚嘆,F(xiàn)irePro W9100 的峰值 FP32 吞吐量達(dá)到 5.2 TFLOPS(32 位浮點(diǎn)),這一數(shù)據(jù)在不到二十年前的超級計(jì)算機(jī)上難以想象。
盡管GPU設(shè)計(jì)的初衷主要還是為了3D圖形處理,但隨著渲染技術(shù)的發(fā)展,這些芯片必須在處理通用計(jì)算任務(wù)方面表現(xiàn)出越來越高的性能。然而,唯一的問題在于它們處理高精度浮點(diǎn)數(shù)計(jì)算(即FP64或更高精度)的能力有限。
回顧2015年全球頂級超級計(jì)算機(jī),使用GPU的數(shù)量相對較少,不論是Intel的Xeon Phi還是英偉達(dá)的Tesla,與完全基于CPU的計(jì)算機(jī)相比,GPU使用的數(shù)量都很少。
2016年,隨著英偉達(dá)發(fā)布Pascal架構(gòu),一切都發(fā)生了變化。這是該公司首次將重點(diǎn)放在專為高性能計(jì)算市場設(shè)計(jì)的GPU上,其他產(chǎn)品則適用于多個(gè)行業(yè)。在Pascal架構(gòu)中,僅有一種型號(GP100)產(chǎn)品是針對高性能計(jì)算市場的,并僅衍生出5款相關(guān)產(chǎn)品。但是,在以往的架構(gòu)中,只有少數(shù)幾個(gè)FP64核心,而這款芯片則擁有接近2000個(gè)FP64核心。
隨著特斯拉P100提供超過9 TFLOPS的FP32處理能力和一半的FP64處理能力,這款圖形卡非常強(qiáng)大。相比之下,AMD的Radeon Pro W9100使用Vega 10芯片,在FP32性能上提速30%,但在FP64性能上卻慢了800%。此時(shí),由于銷售疲軟,英特爾即將停產(chǎn)Xeon Phi處理器。
一年后,英偉達(dá)終于發(fā)布了Volta架構(gòu),立刻表明公司不僅僅關(guān)注將其GPU引入高性能計(jì)算(HPC)和數(shù)據(jù)處理市場,還瞄準(zhǔn)了另一個(gè)市場。
神經(jīng)元、網(wǎng)絡(luò),真是驚奇無比
深度學(xué)習(xí)是在更廣泛的機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的一個(gè)子領(lǐng)域,而機(jī)器學(xué)習(xí)又是人工智能的一個(gè)子集。深度學(xué)習(xí)涉及使用復(fù)雜數(shù)學(xué)模型,即神經(jīng)網(wǎng)絡(luò),從給定數(shù)據(jù)中提取信息。
一個(gè)例子是判斷給定圖片描繪的是否為特定動(dòng)物的概率。要做到這一點(diǎn),模型需要進(jìn)行“訓(xùn)練”——以這個(gè)例子為例,訓(xùn)練過程中要展示數(shù)百萬張?jiān)搫?dòng)物的照片,以及數(shù)百萬張未出現(xiàn)該動(dòng)物的照片。涉及到的數(shù)學(xué)計(jì)算主要基于矩陣和張量運(yùn)算。
幾十年來,這種工作負(fù)載一直只能由基于CPU的超級計(jì)算機(jī)承擔(dān)。然而,早在2000年代初期,人們已經(jīng)認(rèn)識到GPU非常適合處理這樣的任務(wù)。
盡管如此,英偉達(dá)把賭注押在深度學(xué)習(xí)市場的顯著擴(kuò)張上,并在其Volta架構(gòu)中添加了特殊功能以在這一領(lǐng)域中脫穎而出。這個(gè)功能被稱為張量核心,它包括多個(gè)FP16邏輯單元,組成一個(gè)大陣列,但其功能較為有限。
Pascal(左)和Volta(右)
實(shí)際上,它們的功能非常有限,只能執(zhí)行一個(gè)操作:將兩個(gè)FP16 4x4矩陣相乘,然后將另一個(gè)FP16或FP32 4x4矩陣加到結(jié)果上(這個(gè)過程稱為GEMM操作)。英偉達(dá)以及競爭對手之前的GPU也能執(zhí)行這樣的計(jì)算,但速度遠(yuǎn)不如Volta。這個(gè)架構(gòu)下的唯一一款GPU,GV100,共有512個(gè)張量內(nèi)核,每個(gè)內(nèi)核能在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行64個(gè)GEMM操作。
根據(jù)數(shù)據(jù)集中矩陣的大小以及所使用的浮點(diǎn)數(shù)大小,Tesla V100顯卡在進(jìn)行張量計(jì)算時(shí)理論上可以達(dá)到125 TFLOPS的性能。顯然,Volta是為一個(gè)小眾市場而設(shè)計(jì)的。盡管GP100在超級計(jì)算機(jī)領(lǐng)域的應(yīng)用較為有限,但新型的Tesla顯卡卻迅速被廣泛采用。
隨后,英偉達(dá)在其后續(xù)的圖靈架構(gòu)中為普通消費(fèi)類產(chǎn)品添加了張量核心,并開發(fā)了名為DLSS(深度學(xué)習(xí)超采樣)的圖像放大技術(shù)。DLSS利用GPU中的核心運(yùn)行神經(jīng)網(wǎng)絡(luò)對圖像進(jìn)行放大,同時(shí)糾正幀中的任何失真。
有一段時(shí)間,英偉達(dá)在深度學(xué)習(xí)領(lǐng)域的GPU加速市場一家獨(dú)大,數(shù)據(jù)中心業(yè)務(wù)的收入飆升,在2017財(cái)年、2018財(cái)年和2019財(cái)年分別達(dá)到了145%、133%和52%的增長。到2019財(cái)年末,高性能計(jì)算、深度學(xué)習(xí)等市場的銷售收入累計(jì)達(dá)到29億美元,取得了非常顯著的成果。
市場隨后迎來了爆炸式增長。2023年最后一個(gè)季度,公司的總收入達(dá)到了221億美元,同比暴增達(dá)到了265%。大部分增長是由公司的人工智能項(xiàng)目帶來的,貢獻(xiàn)了184億美元的收入。
然而,在利潤豐厚的領(lǐng)域,競爭自然難以避免。盡管英偉達(dá)仍是頂級GPU供應(yīng)商,但其他大型科技公司也絕非甘于落后。
2018年,谷歌開始通過云服務(wù)提供自家開發(fā)的張量處理芯片(Tensor Processing Chips)的訪問。不久之后,亞馬遜也跟進(jìn)推出了專門的CPU——AWS Graviton。同時(shí),AMD正在重組其GPU部門,形成了兩個(gè)截然不同的產(chǎn)品線:一個(gè)主要面向游戲(RDNA),另一個(gè)專門用于計(jì)算(CDNA)。
盡管RDNA與其前身有顯著不同,但CDNA實(shí)際上可以看作是GCN的自然演進(jìn),只不過是放大到了龐大的規(guī)模。如今,觀察用于超級計(jì)算機(jī)、數(shù)據(jù)服務(wù)器和AI機(jī)器的GPU,一切都呈現(xiàn)出巨大的規(guī)模。
AMD的CDNA 2驅(qū)動(dòng)的MI250X配備了220個(gè)計(jì)算單元,提供了接近48 TFLOPS的雙精度FP64吞吐量,以及128 GB的高帶寬存儲器(HBM2e)。這兩方面在高性能計(jì)算應(yīng)用中都備受追捧。而英偉達(dá)的GH100芯片,采用Hopper架構(gòu)和576個(gè)張量核心,在AI矩陣計(jì)算中使用低精度的INT8數(shù)字格式,可以潛在地達(dá)到4000 TOPS。
英特爾的Ponte Vecchio GPU同樣龐大,擁有1000億個(gè)晶體管,而AMD的MI300多了460億,由多個(gè)CPU、圖形和內(nèi)存芯片組成。?
然而,這些產(chǎn)品都有一個(gè)共同之處,那就是它們并不是真正的GPU。在英偉達(dá)將這個(gè)術(shù)語當(dāng)作營銷工具之前,GPU這個(gè)縮寫代表的是圖形處理單元。AMD的MI250X根本沒有光柵輸出單元(ROPs),即使是GH100在Direct3D性能方面也只類似于GeForce GTX 1050,使得GPU中的“G”變得無關(guān)緊要。
那么,我們還能稱呼它們?yōu)槭裁茨兀?
“GPGPU”并不理想,因?yàn)樗硎龅幂^笨拙,是指在通用計(jì)算中使用GPU,并非指設(shè)備本身。"HPCU"(高性能計(jì)算單元)也好不到哪去。但也許這并不是很重要。
畢竟,“CPU”這個(gè)術(shù)語相當(dāng)寬泛,涵蓋了各種不同類型的處理器和用途。
下一個(gè)GPU征服的領(lǐng)域是什么?
隨著英偉達(dá)、AMD、蘋果、英特爾以及其他數(shù)十家公司投入數(shù)十億美元進(jìn)行GPU研究和開發(fā),現(xiàn)今的圖形處理器短時(shí)間內(nèi)不太可能被截然不同的技術(shù)所替代。
對于渲染,最新的API和使用它們的軟件包(如游戲引擎和CAD應(yīng)用程序)通常對運(yùn)行代碼的硬件并不挑剔。因此,從理論上講,它們可以很容易地適應(yīng)一種全新的硬件設(shè)備。
然而,在GPU中只有相對較少的部件專門用于圖形處理,其中最明顯的是三角形設(shè)置引擎、光柵化操作處理器(ROPs),以及在最近的版本中,高度專用的光線追蹤單元。然而,其余部分基本上是一個(gè)大規(guī)模并行的SIMD芯片,由強(qiáng)大且復(fù)雜的存儲器/緩存系統(tǒng)支持。
基本設(shè)計(jì)已經(jīng)非常成熟,未來的提升主要依賴于半導(dǎo)體制造技術(shù)的進(jìn)步。換句話說,它們只能通過增加更多邏輯單元、提高時(shí)鐘速度或二者結(jié)合來實(shí)現(xiàn)進(jìn)一步的優(yōu)化。
當(dāng)然,可以將新功能整合到GPU中,從而讓它們在更廣泛的場景中發(fā)揮作用。在GPU歷史上,這樣的事情已經(jīng)發(fā)生過多次,而統(tǒng)一著色器架構(gòu)的過渡尤為重要。雖然專用硬件處理張量或光線追蹤計(jì)算更為理想,但現(xiàn)代GPU的核心也能夠勝任這些任務(wù),盡管速度較慢。
正因如此,像AMD MI250和英偉達(dá)GH100這樣的產(chǎn)品與其桌面PC對應(yīng)產(chǎn)品有著極為相似的外觀,而未來用于高性能計(jì)算和人工智能的設(shè)計(jì)也很可能會延續(xù)這一趨勢。那么,如果芯片本身并沒有發(fā)生重大變化,它們的應(yīng)用領(lǐng)域會有什么變化呢?
谷歌的Coral加速板搭載了兩顆Edge TPU芯片
與人工智能相關(guān)的領(lǐng)域?qū)嵸|(zhì)上都屬于計(jì)算領(lǐng)域。在需要執(zhí)行大量SIMD計(jì)算的場景下,GPU很可能會被用到。雖然現(xiàn)今科學(xué)與工程領(lǐng)域中很多行業(yè)已經(jīng)在利用這些處理器,但未來我們還可能見證GPU衍生品應(yīng)用的迅猛增長。
如今,人們可以購買到配備了專用于加速張量計(jì)算的微型芯片的手機(jī)。隨著像ChatGPT這樣的工具在性能和受歡迎程度上的不斷提升,我們將看到更多搭載此類硬件的設(shè)備。
作為簡單的圖形處理器,GPU最初只是為了加速游戲運(yùn)行而設(shè)計(jì),但如今已經(jīng)演變成一種全方位的加速器。它在全球范圍內(nèi)助力各種工作站、服務(wù)器以及超級計(jì)算機(jī)的運(yùn)行。
全球數(shù)百萬人每天都在使用這些技術(shù)——不僅在我們的電腦、手機(jī)、電視和流媒體設(shè)備中,還包括在使用整合了語音和圖像識別的服務(wù),以及提供音樂和視頻推薦的服務(wù)時(shí)。
GPU的未來可能是未知領(lǐng)域,但有一點(diǎn)可以肯定:在未來的幾十年里,圖形處理單元將繼續(xù)作為計(jì)算和AI領(lǐng)域的主導(dǎo)工具。
審核編輯:黃飛
評論
查看更多