本文來自微信公眾號“半導(dǎo)體產(chǎn)業(yè)縱橫”,作者/豐寧。
在人工智能計(jì)算架構(gòu)的布局中,CPU與加速芯片協(xié)同工作的模式已成為一種典型的AI部署方案。CPU扮演基礎(chǔ)算力的提供者角色,而加速芯片則負(fù)責(zé)提升計(jì)算性能,助力算法高效執(zhí)行。常見的AI加速芯片按其技術(shù)路徑,可劃分為GPU、FPGA和ASIC三大類別。在這場競爭中,GPU憑借其獨(dú)特的優(yōu)勢成為主流的AI芯片。那么,GPU是如何在眾多選項(xiàng)中脫穎而出的呢?展望AI的未來,GPU是否仍是唯一解呢?
GPU如何制勝當(dāng)下?
AI與GPU之間存在著密切的關(guān)系。
1.1強(qiáng)大的并行計(jì)算能力
AI大模型指的是規(guī)模龐大的深度學(xué)習(xí)模型,它們需要處理海量的數(shù)據(jù)和進(jìn)行復(fù)雜的計(jì)算。GPU的核心優(yōu)勢就在于其強(qiáng)大的并行計(jì)算能力。與傳統(tǒng)的CPU相比,GPU能夠同時處理多個任務(wù),特別適合處理大規(guī)模數(shù)據(jù)集和復(fù)雜計(jì)算任務(wù)。在深度學(xué)習(xí)等需要大量并行計(jì)算的領(lǐng)域,GPU展現(xiàn)出了無可比擬的優(yōu)勢。
1.2完善的生態(tài)系統(tǒng)
其次,為了便于開發(fā)者充分利用GPU的計(jì)算能力,各大廠商提供了豐富的軟件庫、框架和工具。例如,英偉達(dá)的CUDA平臺就為開發(fā)者提供了豐富的工具和庫,使得AI應(yīng)用的開發(fā)和部署變得相對容易。這使得GPU在需要快速迭代和適應(yīng)新算法的場景中更具競爭力。
1.3通用性好
GPU最初是用于圖形渲染的,但隨著時間的推移,它的應(yīng)用領(lǐng)域逐漸擴(kuò)大。如今,GPU不僅在圖形處理中發(fā)揮著核心作用,還廣泛應(yīng)用于深度學(xué)習(xí)、大數(shù)據(jù)分析等領(lǐng)域。這種通用性使得GPU能夠滿足多種應(yīng)用需求,而ASIC和FPGA等專用芯片則局限于特定場景。
有人將GPU比作一把通用的多功能廚具,適用于各種烹飪需求。因此在AI應(yīng)用的大多數(shù)情況下,GPU都被視為最佳選擇。相應(yīng)的,功能多而廣的同時往往伴隨著特定領(lǐng)域不夠“精細(xì)”,接下來看一下,相較其他類型的加速芯片,GPU需要面臨哪些掣肘?
GPU的掣肘
常見的AI加速芯片根據(jù)其技術(shù)路徑,可以劃分為GPU、FPGA和ASIC三大類別。
FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列),是一種半定制芯片。用戶可以根據(jù)自身的需求進(jìn)行重復(fù)編程。FPGA的優(yōu)點(diǎn)是既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn),對芯片硬件層可以靈活編譯,功耗小于CPU、GPU;缺點(diǎn)是硬件編程語言較難,開發(fā)門檻較高,芯片成本、價格較高。FPGA比GPU、CPU更快是因?yàn)槠渚哂卸ㄖ苹慕Y(jié)構(gòu)。
ASIC(Application Specific Integrated Circuit特定用途集成電路)根據(jù)產(chǎn)品的需求進(jìn)行特定設(shè)計(jì)和制造的集成電路,其定制程度相比于GPU和FPGA更高。ASIC算力水平一般高于GPU、FPGA,但初始投入大,專業(yè)性強(qiáng)縮減了其通用性,算法一旦改變,計(jì)算能力會大幅下降,需要重新定制。
再看GPU相較于這兩類芯片存在哪些劣勢。
第一點(diǎn),GPU的單位成本理論性能低于FPGA、ASIC。
從成本角度看,GPU、FPGA、ASIC三種硬件從左到右,從軟件到硬件,通用性逐漸降低、越專用,可定制化逐漸提高,相應(yīng)的設(shè)計(jì)、開發(fā)成本逐漸提高,但是單位成本理論性能越高。舉個例子,對于還在實(shí)驗(yàn)室階段的經(jīng)典算法或深度學(xué)習(xí)算法,使用GPU做軟件方面的探索就很合適;對于已經(jīng)逐漸成為標(biāo)準(zhǔn)的技術(shù),適合使用FPGA做硬件加速部署;對于已經(jīng)成為標(biāo)準(zhǔn)的計(jì)算任務(wù),則直接推出專用芯片ASIC。
第二點(diǎn),GPU的運(yùn)算速度要遜色于FPGA和ASIC。
FPGA、ASIC和GPU內(nèi)都有大量的計(jì)算單元,因此它們的計(jì)算能力都很強(qiáng)。在進(jìn)行神經(jīng)網(wǎng)絡(luò)運(yùn)算的時候,三者的速度會比CPU快很多。但是GPU由于架構(gòu)固定,硬件原生支持的指令也就固定了,而FPGA和ASIC則是可編程的,其可編程性是關(guān)鍵,因?yàn)樗屲浖c終端應(yīng)用公司能夠提供與其競爭對手不同的解決方案,并且能夠靈活地針對自己所用的算法修改電路。
因此在很多場景的應(yīng)用中,F(xiàn)PGA和ASIC的運(yùn)算速度要大大優(yōu)于GPU。
具體到場景應(yīng)用,GPU浮點(diǎn)運(yùn)算能力很強(qiáng),適合高精度的神經(jīng)網(wǎng)絡(luò)計(jì)算;FPGA并不擅長浮點(diǎn)運(yùn)算,但是對于網(wǎng)絡(luò)數(shù)據(jù)包、視頻流可以做到很強(qiáng)的流水線處理;ASIC則根據(jù)成本有幾乎無限的算力,取決于硬件設(shè)計(jì)者。
第三點(diǎn),GPU的功耗遠(yuǎn)遠(yuǎn)大于FPGA和ASIC。
再看功耗。GPU的功耗,是出了名的高,單片可以達(dá)到250W,甚至450W(RTX4090)。而FPGA一般只有30~50W。這主要是因?yàn)閮?nèi)存讀取。GPU的內(nèi)存接口(GDDR5、HBM、HBM2)帶寬極高,大約是FPGA傳統(tǒng)DDR接口的4-5倍。但就芯片本身來說,讀取DRAM所消耗的能量,是SRAM的100倍以上。GPU頻繁讀取DRAM的處理,產(chǎn)生了極高的功耗。另外,F(xiàn)PGA的工作主頻(500MHz以下)比CPU、GPU(1~3GHz)低,也會使得自身功耗更低。
再看ASIC,ASIC的性能和功耗優(yōu)化是針對特定應(yīng)用進(jìn)行的,因此在特定任務(wù)上性能更高、功耗更低。由于設(shè)計(jì)是針對特定功能的,ASIC在執(zhí)行效率和能效比方面通常優(yōu)于FPGA。
舉個例子,在智能駕駛這樣的領(lǐng)域,環(huán)境感知、物體識別等深度學(xué)習(xí)應(yīng)用要求計(jì)算響應(yīng)方面必須更快的同時,功耗也不能過高,否則就會對智能汽車的續(xù)航里程造成較大影響。
第四點(diǎn),GPU時延高于FPGA、ASIC。FPGA相對于GPU具有更低的延遲。GPU通常需要將不同的訓(xùn)練樣本,劃分成固定大小的“Batch(批次)”,為了最大化達(dá)到并行性,需要將數(shù)個Batch都集齊,再統(tǒng)一進(jìn)行處理。
FPGA的架構(gòu),是無批次的。每處理完成一個數(shù)據(jù)包,就能馬上輸出,時延更有優(yōu)勢。ASIC也是實(shí)現(xiàn)極低延遲的另一種技術(shù)。在針對特定任務(wù)進(jìn)行優(yōu)化后,ASIC通常能夠?qū)崿F(xiàn)比FPGA更低的延遲,因?yàn)樗梢韵鼺PGA中可能存在的額外編程和配置開銷。
既如此,為什么GPU還會成為現(xiàn)下AI計(jì)算的大熱門呢?
在當(dāng)前的市場環(huán)境下,由于各大廠商對于成本和功耗的要求尚未達(dá)到嚴(yán)苛的程度,加之在GPU領(lǐng)域的長期投入和積累,使得GPU成為了當(dāng)前最適合大模型應(yīng)用的硬件產(chǎn)品。盡管FPGA和ASIC在理論上具有潛在的優(yōu)勢,但它們的開發(fā)過程相對復(fù)雜,目前在實(shí)際應(yīng)用中仍面臨諸多挑戰(zhàn),難以廣泛普及,因此,眾多廠商紛紛選擇GPU作為解決方案,這也導(dǎo)致高端GPU的產(chǎn)能吃緊問題,所以也亟需尋求替代方案。