編者按:
國家發(fā)改委等四部門聯(lián)合發(fā)布《全國一體化大數(shù)據(jù)中心協(xié)同創(chuàng)新體系算力樞紐實施方案》,提出在京津冀、長三角、粵港澳大灣區(qū)、成渝以及貴州、內(nèi)蒙古、甘肅、寧夏建設(shè)全國算力網(wǎng)絡(luò)國家樞紐節(jié)點,啟動實施“東數(shù)西算”工程,構(gòu)建國家算力網(wǎng)絡(luò)體系。
當(dāng)前,算力已成為全球戰(zhàn)略競爭新焦點,是國民經(jīng)濟(jì)發(fā)展的重要引擎,全球各國的算力水平與經(jīng)濟(jì)發(fā)展水平呈現(xiàn)顯著的正相關(guān)。在2020年全球算力中,美國占36%,中國占31%,歐洲和日本分別占11%及6%。近年來,美國、歐洲、日本紛紛制定行動計劃,不斷運用算力助推經(jīng)濟(jì)增長。
“數(shù)據(jù)、算法、算力”是數(shù)字經(jīng)濟(jì)時代核心的三個要素,其中算力是數(shù)字經(jīng)濟(jì)的物理承載。這里,我們通過“預(yù)見·第四代算力革命”系列文章(共四篇),從微觀到宏觀,詳細(xì)分析跟性能和算力相關(guān)的各個因素以及主流的算力平臺,盡可能地直面當(dāng)前算力提升面臨的諸多挑戰(zhàn)和困難,展望面向未來的算力發(fā)展趨勢。這四篇文章為:
預(yù)見·第四代算力革命(二):三大主流計算平臺CPU、GPU和DSA;
預(yù)見·第四代算力革命(三):面向未來十年的新一代計算架構(gòu);
預(yù)見·第四代算力革命(四):宏觀算力建設(shè)。
本文為第二篇,歡迎關(guān)注公眾號,閱讀歷史以及后續(xù)精彩文章。
1 第一代,CPU,最通用靈活的軟件平臺
IT行業(yè)變化太快,不變的唯有變化。
近年來,云計算、人工智能、自動駕駛、元宇宙等軟件新技術(shù)層出不窮,并且已有的技術(shù)仍在快速迭代。軟件技術(shù)日新月異,快速演進(jìn)。然而,目前,支撐這一切的硬件,依然是以CPU計算為主的通用服務(wù)器。
1.1 軟硬件解耦:硬件性能狂飆,軟件生態(tài)枝繁葉茂
指令集,是軟硬件的媒介。CPU是最靈活的,原因在于運行于CPU指令都是最基本的加減乘除外加一些訪存及控制類指令,就像積木塊一樣,我們可以隨意組合出我們想要的各種形態(tài)的功能,形成非常復(fù)雜并且功能強(qiáng)大的程序(或者稱為軟件)。
CPU通過標(biāo)準(zhǔn)化的指令集,使得CPU平臺的硬件實現(xiàn)和軟件編程完全解耦,沒有了對方的掣肘,軟件和硬件均可以完全的放飛自我:
芯片設(shè)計工程師不需要關(guān)心具體場景,只關(guān)注于架構(gòu)和性能,通過各種優(yōu)化手段,快速提升CPU性能。從上圖中,可以看到,在差不多40年的時間里,CPU的整體性能提升接近50000倍。一方面有賴于半導(dǎo)體工藝的進(jìn)步,也有賴于處理器架構(gòu)的翻天覆地變化。
軟件工程師,不需要關(guān)注硬件細(xì)節(jié),聚焦于軟件開發(fā)。軟件沒有了硬件的“約束”,逐漸發(fā)展成了一個超級生態(tài)。從各種數(shù)百萬使用者的高級編程語言/編譯器,到廣泛使用在云計算數(shù)據(jù)中心、PC機(jī)、手機(jī)等終端的操作系統(tǒng)以及各種系統(tǒng)框架/開發(fā)庫,再到各種專業(yè)的數(shù)據(jù)庫、中間件,以及云計算基礎(chǔ)的虛擬化、容器等。上述這些軟件都是基礎(chǔ)的支撐軟件,是軟件的“冰山一角”,而更多的則是各種應(yīng)用級的軟件。系統(tǒng)級和應(yīng)用級的軟件,共同組成了基于CPU的軟件超級生態(tài)。
1.2 超大規(guī)模復(fù)雜計算,靈活性高于性能,CPU成為最佳計算平臺
在手機(jī)端已經(jīng)非常成熟的SOC實現(xiàn),為什么在數(shù)據(jù)中心端沒有大規(guī)模應(yīng)用?為什么直到現(xiàn),數(shù)據(jù)中心依然是以CPU為主的計算平臺?這是因為,越是復(fù)雜的場景,對軟件靈活性的要求越高,而只有CPU能夠提供云場景所需的靈活性。
超大規(guī)模復(fù)雜計算場景對硬件靈活性的要求,主要體現(xiàn)在四個方面:
硬件的靈活性。硬件處理引擎要能夠很好地支持軟件的快速迭代。CPU因為其靈活的基礎(chǔ)指令編程的特點,可以認(rèn)為是最適合云計算的處理引擎。
硬件的通用性。廠家購買服務(wù)器,很難預(yù)測服務(wù)器會運行哪類任務(wù)。最好的辦法是采用完全通用的服務(wù)器。CPU由于其通用性,成為云計算場景最優(yōu)的選擇。
硬件的利用率。云計算通過虛擬化把資源切分,實現(xiàn)資源共享,以此提高資源利用并降低成本。而目前,只有CPU能夠?qū)崿F(xiàn)非常友好的硬件級別的虛擬化支持。
硬件的一致性。云計算場景,軟硬件相互脫離。同一個軟件實體會在不同的硬件實體遷移,同一個硬件實體也需要運行不同的軟件實體。而CPU,是一致性最好的硬件平臺。
1.3 CPU性能瓶頸,制約軟件的進(jìn)一步發(fā)展
圖 CPU性能提升的五個階段
上圖明確展示了CPU性能發(fā)展的五個階段:
CISC階段。上世紀(jì)80年代,x86架構(gòu)為代表的CISC架構(gòu)開啟了CPU性能快速提升的時代,CPU性能每年提升約25%(圖中22%數(shù)據(jù)有誤),大約3年性能可以翻倍。
RISC階段。CISC指令系統(tǒng)越來越復(fù)雜,而RISC證明了“越精簡,越高效”。隨著RISC架構(gòu)的CPU開始流行,性能每年可以達(dá)到52%,性能翻倍只需要18個月。
多核階段。單核CPU的性能提升越來越困難,通過集成更多CPU核并行的方式來進(jìn)一步提升性能。這一時期,每年性能提升可以到23%,性能翻倍需要3.5年。
多核性能遞減階段。隨著CPU核的數(shù)量越來越多,阿姆達(dá)爾定律證明了處理器數(shù)量的增加帶來的收益會逐漸遞減。這一時期,CPU性能提升每年只有12%,性能翻倍需要6年。
性能提升瓶頸階段。不管是從架構(gòu)/微架構(gòu)設(shè)計、工藝、多核并行等各種手段都用盡的時候,CPU整體的性能提升達(dá)到了一個瓶頸。從2015年之后,CPU性能每年提升只有3%,要想性能翻倍,需要20年。
總之,受邊際效應(yīng)遞減的影響,CPU的性能已經(jīng)達(dá)到瓶頸;但是,各類上層應(yīng)用對算力的需求是無止境的。當(dāng)前,云計算面臨的基本矛盾是:CPU的性能,越來越無法滿足上層軟件的需要。
2 第二代,GPU,高效的并行計算平臺
2.1 GPU,通用的并行計算平臺
GPU,Graphics Processing Units,圖形處理單元。顧名思義,GPU是主要用于做圖形圖形處理的專用加速器。GPU內(nèi)部處理是由很多并行的計算單元支持,如果只是用來做圖形圖像處理,有點“暴殄天物”,其應(yīng)用范圍太過狹窄。因此把GPU內(nèi)部的計算單元進(jìn)行通用化重新設(shè)計,GPU變成了GPGPU(本文接下來內(nèi)容中,如沒有特別說明,GPU都指的是GPGPU)。
到2012年,GPU已經(jīng)發(fā)展成為高度并行的眾核系統(tǒng),GPU有強(qiáng)大的并行處理能力和可編程流水線,既可以處理圖形數(shù)據(jù),也可以處理非圖形數(shù)據(jù)。特別是在面對SIMD類指令,數(shù)據(jù)處理的運算量遠(yuǎn)大于數(shù)據(jù)調(diào)度和傳輸?shù)倪\算量時,GPU在性能上大大超越了傳統(tǒng)的CPU應(yīng)用程序?,F(xiàn)在大家所稱呼的GPU通常都指的是GPU。
2.2 GPU為什么比CPU性能好?
站在“指令復(fù)雜度”的角度,CPU是標(biāo)量指令計算,而GPU并行可以看做是SIMD或MIMD的計算。GPU的指令復(fù)雜度更高。
從計算資源占比的角度,如圖所示,CPU把更多的資源用于控制和Cache,而把更少的資源用于計算,因此計算的性能相對較差。而GPU等非通用處理器則是把更多的資源投入到計算中,因此具有更好的性能。CPU注重的是是單核的高性能,而GPU注重的單核的高效能以及眾核的高性能。
2.3?CUDA,NVIDIA GPU成功的關(guān)鍵
2006年NVIDIA推出了CUDA,這是一個通用的并行計算平臺和編程模型,利用NVIDIA GPU中的并行計算引擎,以一種比CPU更高效的方式解決許多復(fù)雜的計算問題。CUDA提供了開發(fā)者使用C++作為高級編程語言的軟件環(huán)境。也支持其他語言、應(yīng)用程序編程接口或基于指令的方法,如FORTRAN、DirectCompute、OpenACC。
從“指令復(fù)雜度”的角度,我們可以非常清楚看到,GPU因為“指令”復(fù)雜度帶來性能提升的好處的同時,其通用靈活性就變得更加困難。因此,CUDA成為NVIDIA GPU成功的關(guān)鍵,它極大地降低了用戶基于GPU并行編程的門檻,在此基礎(chǔ)上,還針對不同場景構(gòu)建了功能強(qiáng)大的開發(fā)庫,逐步建立了GPU+CUDA的強(qiáng)大生態(tài)。
2.4 網(wǎng)絡(luò)處理器NP和GPU的對比
網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)跟GPU在技術(shù)理念上有很多相似之處:都是通過特定優(yōu)化的、高效能的小CPU核組成的眾核系統(tǒng),并行的完成計算任務(wù)。根據(jù)“指令”復(fù)雜度,從CPU到ASIC的劃分,NP和GPU處于相同的位置。
NP具有如下的一些不足:
性能。雖然相比GPU,性能是在同一層級,但相比ASIC/DSA性能不夠。
場景。顧名思義,NP主要用于網(wǎng)絡(luò)場景的處理,沒有像GPU那樣作為通用并行計算,GPU可以用于非常多的高性能場景。
開發(fā)和生態(tài)。GPU由于NVIDIA CUDA的強(qiáng)大生態(tài),框架、工具鏈、開發(fā)庫都非常成熟。而NP由于生態(tài)的不成熟,以及各家NP之間也基本互不兼容,開發(fā)者需要了解非常底層的硬件細(xì)節(jié),致使編程難度很大。
NP在網(wǎng)絡(luò)領(lǐng)域有一定范圍的采用,但網(wǎng)絡(luò)領(lǐng)域更主要的處理引擎是網(wǎng)絡(luò)ASIC,這些年還興起了網(wǎng)絡(luò)數(shù)據(jù)面可編程的網(wǎng)絡(luò)DSA,都是相比NP架構(gòu)具有更極致的性能。正因為NP相比ASIC/DSA的性能不足,以及相比GPU覆蓋的場景有限,這樣的 “高不成,低不就”,導(dǎo)致其一直沒能成為(相比GPU而言)主流的通用計算平臺。
3 第三代,DSA,體系結(jié)構(gòu)的黃金年代
3.1 DSA產(chǎn)生的背景
通用CPU處理器演進(jìn)遇到了瓶頸:
工藝角度。半導(dǎo)體工藝進(jìn)步減緩,Dennard Scaling規(guī)律約束,芯片功耗急劇上升,晶體管成本不降反升。
架構(gòu)角度。單核性能極限,多核架構(gòu)性能提升也變得越來越慢。
作為計算機(jī)體系結(jié)構(gòu)領(lǐng)域的泰山北斗,John Hennessy與David Patterson在獲得2017年圖靈獎時的獲獎演說中指出:“未來十年,將是計算機(jī)體系結(jié)構(gòu)的黃金年代”。針對計算機(jī)性能瓶頸,兩人給出的解決方案是DSA(Domain Specific Architecture,特定領(lǐng)域架構(gòu))。意思是說,未來需要面向不同的場景,需要根據(jù)場景的特點,去定制芯片。
DSA針對特定應(yīng)用場景定制處理引擎甚至芯片,支持部分軟件可編程。DSA與ASIC在同等晶體管資源下性能接近,兩者最大的不同在于是否可軟件編程。ASIC由于其功能確定,軟件只能通過一些簡單的配置控制硬件運行,其功能比較單一。而DSA則支持一些可編程能力,使得其功能覆蓋的領(lǐng)域范圍相比ASIC要大很多。
DSA,一方面可以實現(xiàn)ASIC一樣的極致的性能,另一方面,可以像通用CPU一樣執(zhí)行軟件程序。當(dāng)然了,DSA只會加速某些特定領(lǐng)域的應(yīng)用程序。例如:用于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)處理器以及用于SDN的網(wǎng)絡(luò)可編程處理器。
3.2 為什么不是ASIC?
我們看看網(wǎng)絡(luò)發(fā)展的例子?;仡橲DN的發(fā)展,背景是這樣的:
網(wǎng)絡(luò)芯片是一個緊耦合的ASIC芯片設(shè)計,隨著支持的網(wǎng)絡(luò)協(xié)議越來越多,其復(fù)雜度急劇上升,使用門檻也越來越高。
網(wǎng)絡(luò)芯片提供的眾多功能,每個用戶能用到的只是一小部分,這反而拖累了ASIC的性能和資源效率。
完全硬件ASIC實現(xiàn),上層的用戶對網(wǎng)絡(luò)沒有太多的話語權(quán),只能是在供應(yīng)商已經(jīng)定好的設(shè)計里修改一些配置參數(shù)。用戶只能是“User”,難以成為“Developer”。
并且,用戶要連接到數(shù)以千計甚至萬計的設(shè)備中手動的去配置。
并且,這些設(shè)備可能來自不同的廠家,其配置接口完全可能大相徑庭。
于是,SDN最開始推出了控制面和數(shù)據(jù)面分離的Openflow標(biāo)準(zhǔn)協(xié)議,通過集中決策,再分發(fā)到分布式的支持SDN功能的交換機(jī)中。更進(jìn)一步的,還有了支持?jǐn)?shù)據(jù)面編程的P4(Programming Protocol-Independent Packet Processors,可編程的協(xié)議無關(guān)的包處理器)語言以及網(wǎng)絡(luò)包處理引擎PISA。這樣,還可以通過P4軟件程序把功能編程到硬件中去。PISA是一種網(wǎng)絡(luò)領(lǐng)域?qū)S肈SA架構(gòu)處理器,能夠在達(dá)到ASIC級別性能的基礎(chǔ)上仍然具有非常好的編程能力。
許多時候,為了提供最高效的解決方案,我們不得不根據(jù)場景做專門的定制。于是陷入了Case by Case永無休止的開發(fā)中無法自拔。并且,為了盡可能的擴(kuò)大產(chǎn)品的覆蓋范圍,盡可能提高產(chǎn)品的應(yīng)用范圍,我們又不得不做功能超集,這樣,之前因為定制積攢的性能和成本優(yōu)勢就變得不是那么明顯。
云計算等復(fù)雜場景業(yè)務(wù)更新迭代很快,芯片的周期(3+5,研發(fā)+生命周期,長達(dá)8年)很長。大部分情況,ASIC都無法滿足業(yè)務(wù)快速發(fā)展的需要。在既需要性能又需要靈活性的場景下,DSA和其他靈活處理器引擎混合架構(gòu)成為比較合適的選擇。
簡而言之,定制的ASIC不適合靈活多變的云計算等復(fù)雜場景。
3.3 AI領(lǐng)域DSA案例,谷歌TPU
DSA架構(gòu)的第一個經(jīng)典案例是谷歌的TPU。TPU(Tensor Processing Unit,張量處理單元)是Google定制開發(fā)的ASIC芯片,用于加速機(jī)器學(xué)習(xí)工作負(fù)載。
圖 谷歌TPU 1.0結(jié)構(gòu)框圖
如上圖,TPU指令通過PCIe Gen3 x16總線從Host發(fā)送到TPU的指令緩沖區(qū)。內(nèi)部模塊通過256字節(jié)寬的總線連接在一起。矩陣乘法單元是TPU的核心,它包含256x256 MAC,可以對有符號或無符號整數(shù)執(zhí)行8位乘加,16位乘積收集在矩陣單元下方的4 MB 32位累加器中。
TPU指令設(shè)計為CISC(復(fù)雜指令集計算機(jī))類型,包括一個重復(fù)域。這些CISC類型指令的CPI(Cycles per Instruction,每條指令的平均時鐘周期)通常為10到20??偣泊蠹s有十二條指令。
圖 CPU、GPU和TPU的性能功耗比
如上圖,其中的TPU’是使用了GDDR5存儲的改進(jìn)型??梢钥吹?,相比CPU性能提升196倍,相比GPU性能提升68倍。谷歌隨后又開發(fā)了TPU 2.0、3.0版本。TPU 1.0的性能峰值達(dá)到了92Tops,而TPU2.0性能峰值達(dá)到180Tflops,TPU3.0更是達(dá)到了420Tflops。并且,從TPU 2.0開始,TPU不再是作為一個加速卡應(yīng)用于通用服務(wù)器,而是定制的TPU集群,這樣會更大限度地發(fā)揮TPU的加速價值。
3.4 網(wǎng)絡(luò)領(lǐng)域DSA案例,Intel Tofino
P4是一種面向網(wǎng)絡(luò)數(shù)據(jù)面編程的高級語言。上圖展示了P4和已有的協(xié)議接口之間的關(guān)系。P4用來配置交換機(jī),告訴它們應(yīng)該如何處理數(shù)據(jù)包。已有的協(xié)議接口(例如OpenFlow)負(fù)責(zé)將轉(zhuǎn)發(fā)表送入固定功能的交換機(jī)。
P4模型將數(shù)據(jù)包如何在不同的轉(zhuǎn)發(fā)設(shè)備上(例如以太網(wǎng)交換機(jī)、負(fù)載均衡器、路由器)被不同的技術(shù)(例如固定功能的ASIC交換芯片、NPU、可重配置的交換機(jī)、軟件交換機(jī)、FPGA等)進(jìn)行處理的問題通用化。這就使得能夠用一門通用的語言來描繪通用的P4模型來處理數(shù)據(jù)包。
上圖是PISA架構(gòu)(Protocol Independent Switch Architecture,協(xié)議無關(guān)的交換架構(gòu)),是一種支持P4數(shù)據(jù)面可編程包處理的流水線引擎,通過可編程的解析器、多階段的可編程的匹配動作以及可編程的逆解析器組成的流水線,來實現(xiàn)數(shù)據(jù)面的編程。這樣可以通過編寫P4程序,下載到處理器流水線,可以非常方便地支持新協(xié)議的處理。
Intel (原來的Barefoot,2019年被Intel收購)基于PISA架構(gòu)的Tofino芯片,是網(wǎng)絡(luò)領(lǐng)域最典型的DSA,其實現(xiàn)的可編程流水線既能夠達(dá)到ASIC級別的性能,又能夠通過P4對整個包處理數(shù)據(jù)面進(jìn)行編程。
在Intel看來,雖然已經(jīng)存在NP和FPGA,可以修改網(wǎng)絡(luò)協(xié)議和編輯數(shù)據(jù)包,并為那些知道如何編寫微代碼或RTL的人員提供適度的可編程性,但是它們跟ASIC的性能不在一個數(shù)量級。因此,NPU和FPGA只能在性能不敏感的地方找到用武之地。Intel為網(wǎng)絡(luò)行業(yè)提供兩全其美的解決方案:可編程性數(shù)據(jù)平面協(xié)議,并且達(dá)到行業(yè)最高的速度。Tofino不僅可以做到比傳統(tǒng)ASIC還要更快,而且具有的可編程能力,使得網(wǎng)絡(luò)編程變得更加容易并且通用。
3.5 DSA仍然需要繼續(xù)優(yōu)化
DSA提供了比傳統(tǒng)ASIC更多的靈活性,但依然難以擔(dān)當(dāng)數(shù)據(jù)中心主力計算平臺的重任。主要原因是:
DSA是面向某個特定的領(lǐng)域定制優(yōu)化的設(shè)計,這就約束了DSA芯片的應(yīng)用規(guī)模和商業(yè)價值。大家都知道,一顆先進(jìn)工藝的大芯片的一次性研發(fā)成本都非常的高,這就需要芯片的大規(guī)模落地來攤薄單個芯片的成本。而面向特定領(lǐng)域的設(shè)計,和大規(guī)模落地相互是矛盾的。
DSA的靈活性具有一定局限。不同用戶的場景需求有很大的差別,即使是同一個用戶,其場景的應(yīng)用邏輯和算法仍在快速的迭代。而DSA芯片設(shè)計需要3年,芯片生命周期大約5年。8年的周期里,DSA很難支撐眾多客戶的需求以及客戶需求的長期迭代。
DSA難以成為“宏場景”的整體解決方案。以云計算場景為例,是很多場景組合到一起的宏場景。站在系統(tǒng)的角度,數(shù)據(jù)中心為了運維管理的需要,需要盡可能少的服務(wù)器類型。DSA解決特定問題A,如果有A、B、C等多個問題同時需要解決,該如何辦呢?
以AI為例,AI-DSA各家都在按照自己的理解定制芯片,可以說在AI領(lǐng)域,還沒有標(biāo)準(zhǔn)的軟硬件交互交接口,并且框架以及算法和應(yīng)用都還沒有完全穩(wěn)定??傊?,在AI領(lǐng)域,目前還沒有形成足夠強(qiáng)大的生態(tài)。這樣,就進(jìn)一步限制了AI-DSA的落地規(guī)模,也就削弱了AI-DSA作為一個主力算力平臺的作用。
4 總結(jié)
4.1 定制和通用
ASIC是定制芯片AS-IC,對應(yīng)的我們可以把其他偏通用的IC稱之為GP-IC。
在文章里,我們已經(jīng)對CPU、GPU和DSA三大平臺的優(yōu)劣勢進(jìn)行了詳細(xì)的分析。而ASIC是作為反面參考案例的。那么,為什么ASIC沒有成為一種主流的計算平臺呢?ASIC存在的問題,在前面“為什么不是ASIC?”章節(jié)已經(jīng)進(jìn)行了說明,這里再做一次總結(jié)性的強(qiáng)調(diào)。
最開始我們說過,ASIC引擎“指令”復(fù)雜度最高也即性能會更極致。大家通常的理解,也是如此。但實際上,受限于很多其他原因,ASIC的表現(xiàn)并不如大家想象的那么優(yōu)秀:
ASIC是定制的,沒有冗余,理論上是最極致的性能。但因為ASIC是場景跟硬件設(shè)計完全耦合,硬件開發(fā)的難度很高,難以實現(xiàn)超大規(guī)模的ASIC設(shè)計。
理論上來說ASIC的資源效率是最高的,但由于ASIC覆蓋的場景較小,芯片設(shè)計為了覆蓋盡可能多的場景,不得不實現(xiàn)功能超集。實際的功能利用率和資源效率(相比DSA)反而不高。
ASIC功能完全確定,難以覆蓋復(fù)雜計算場景的差異化要求。差異化包含兩個方面:橫向的不同用戶的差異化需求,縱向的單個用戶的長期快速迭代。
即使同一場景,不同Vendor的ASIC引擎設(shè)計依然五花八門,毫無生態(tài)可言。
而能夠成為主流處理引擎的CPU,GPU和DSA其實都有一個共性的特征,那就是“通用”:
CPU,中央處理器,其實還有個更加通俗的名字,通用處理器;
GPU也是因為做到了GP-GPU才開始大放異彩;
DSA可以看做是定制的AS-IC向通用性的回調(diào),DSA是一種GP-IC(對比AS-IC)。
4.2 CPU、GPU和DSA的優(yōu)劣勢分析
平臺 | 性能 | 資源效率 | 靈活性 | 軟件生態(tài) |
CPU | ★☆☆☆☆
邊際效應(yīng)遞減:增加晶體管資源,性能提升有限。性能瓶頸,摩爾定律失效。 |
★☆☆☆☆
相比其他硬件加速處理器,CPU效率最低。 |
★★★★★
CPU指令最簡單,是一些最基礎(chǔ)的組件。像搭積木一樣,編程靈活。 |
★★★★★
CPU廣泛應(yīng)用,軟件生態(tài)龐大而成熟。 |
GPU | ★★★☆☆
性能比CPU大幅提升,比DSA/ASIC有較大差距。未來性能即將瓶頸。 |
★★★☆☆
高效率的小核,以及部分加速引擎。與CPU相比,資源效率顯著提升。 |
★★★☆☆
本質(zhì)是眾核并行,編程具有一定靈活性。同步并行約束,編程相對簡單。 |
★★★★☆
GP-GPU CUDA編程生態(tài)比較成熟。 |
ASIC | ★★★★☆
定制無冗余,理論上極致的性能。受限于設(shè)計復(fù)雜度,難以超大規(guī)模設(shè)計。 |
★★★★☆
理論上最高的資源效率,但不可避免存在功能超集。 |
★☆☆☆☆
功能邏輯完全確定。CSR和可配置表項,通過驅(qū)動程序控制硬件運行。 |
☆☆☆☆☆
同一領(lǐng)域,不同廠家ASIC實現(xiàn)存在差別,需要特定驅(qū)動程序。無生態(tài)可言。 |
DSA | ★★★★★
ASIC一樣極致的性能。由于一定程度的軟硬件解耦,能夠?qū)崿F(xiàn)較大規(guī)模設(shè)計。總體性能高于ASIC。 |
★★★★★
少量可編程的通用性是需要代價的,但功能利用率高于ASIC。 |
★★☆☆☆
少量指令,需要強(qiáng)大的編譯器,把算法映射到特定DSA架構(gòu)。相比ASIC,具有一定的可編程性。 |
★☆☆☆☆
算法和框架經(jīng)常更新,難以把主流框架完全并且長期地映射到特定DSA架構(gòu)。 |