異構(gòu)計(jì)算已經(jīng)成了半導(dǎo)體業(yè)界不得不思考的一個(gè)話題,傳統(tǒng)通用計(jì)算的性能捉襟見(jiàn)肘,過(guò)去承諾的每隔一段時(shí)間芯片性能翻倍的豪言壯語(yǔ)已經(jīng)沒(méi)有人再提了。如今我們用到的手機(jī)中,各種除CPU以外的計(jì)算單元層出不窮,無(wú)論是神經(jīng)網(wǎng)絡(luò)處理器還是圖像處理器。
異構(gòu)計(jì)算的存在可以說(shuō)創(chuàng)造了另一個(gè)維度,這個(gè)維度上我們又有了堆性能的空間,小至手機(jī)SoC、汽車芯片,大到服務(wù)器芯片和超算處理器,異構(gòu)帶來(lái)了更大的算力。但與此同時(shí),異構(gòu)計(jì)算也帶來(lái)了一些潛在的問(wèn)題。
異構(gòu)計(jì)算的崛起
異構(gòu)計(jì)算其實(shí)早在計(jì)算機(jī)時(shí)代的早期就開(kāi)始零星出現(xiàn)了,比如英特爾在80年代推出的浮點(diǎn)協(xié)處理器(FPU)i487,Inmos./ST在1996年推出的多媒體加速器Chameleon等等。轉(zhuǎn)眼進(jìn)入了新世紀(jì),異構(gòu)出現(xiàn)的頻率也越來(lái)越高,2010年蘋果推出了首個(gè)自研的處理器A4,將CPU、GPU和其它加速器集成至一起。在超算領(lǐng)域,加速器和協(xié)處理器也數(shù)量也在逐步增加。
2020年以后,各國(guó)的超級(jí)計(jì)算機(jī)計(jì)劃都定位在了Exascale的百億億級(jí)別,要想實(shí)現(xiàn)目標(biāo),要么靠堆核心規(guī)模來(lái)堆性能,要么就是選擇異構(gòu)計(jì)算。如今前十的超算系統(tǒng)中,有一半以上都采用了CPU+GPU的異構(gòu)設(shè)計(jì)。
明眼人都能看出,這種CPU+GPU的異構(gòu)設(shè)計(jì)也開(kāi)始變得愈發(fā)緊密,比如英偉達(dá)今年宣布的Arm CPU Grace,該處理器靠著英偉達(dá)專利互聯(lián)技術(shù)NVLink的加持,成功將CPU與GPU之間的互聯(lián)速度做到了夸張的900GB/s,是傳統(tǒng)PCIe的10倍以上,CPU更是靠LPDDR5X實(shí)現(xiàn)了500GB/s的內(nèi)存帶寬。
非傳統(tǒng)的架構(gòu)更是層出不窮,Graphcore的IPU、谷歌的TPU、矢量引擎和FPGA等等,相信XPU的命名形式馬上就要用完26個(gè)字母了。促使大家選擇異構(gòu)的動(dòng)力究竟是什么?答案很簡(jiǎn)單,異構(gòu)給到了一個(gè)更高效的方案,能夠?qū)崿F(xiàn)的算力更高。既然你CPU在計(jì)算上落后了,我GPU自然要上位,更何況我還有這么多成熟的I/O和互聯(lián)技術(shù)為我撐腰。
異構(gòu)計(jì)算真就完美無(wú)缺?
異構(gòu)計(jì)算就真的如此完美嗎?并非如此。異構(gòu)計(jì)算的存在其實(shí)也引出了不少隱患,比如極度差異化的編程模型,從過(guò)去的單向編程轉(zhuǎn)為了多向編程。因?yàn)楫悩?gòu)系統(tǒng)中存在多個(gè)計(jì)算設(shè)備,又有著不同的系統(tǒng)架構(gòu)、指令集和編程模型,因此異構(gòu)系統(tǒng)的編程與傳統(tǒng)的CPU編程相比有很大的差距。通常來(lái)說(shuō),異構(gòu)混合計(jì)算系統(tǒng)需要多套不同的代碼,這增大了應(yīng)用開(kāi)發(fā)的難度,紙面參數(shù)是好看了,卻苦了軟件開(kāi)發(fā)者。
其次,GPU、FPGA和AI處理器廠商都推出了截然不同的加速器方案,這些方案不僅僅采用了自己專用的處理器架構(gòu),還有自己的執(zhí)行指令和編譯器。在這樣不統(tǒng)一的架構(gòu)下,將并行程序移植到異構(gòu)處理器上需要的可不只是重新編譯,還有代碼重寫。也正因如此,HPC的代碼生態(tài)雖然不弱,但近半數(shù)以上可能永遠(yuǎn)都不會(huì)被移植到其他加速器上,甚至這一部分工作量還分?jǐn)偟搅思铀倨鲝S商的軟件開(kāi)發(fā)工作量上。
所以,必須得使用優(yōu)秀的軟件棧,這樣才能讓開(kāi)發(fā)者充分利用異構(gòu)處理器的計(jì)算資源,而不用在編程時(shí)考慮復(fù)雜的硬件細(xì)節(jié)。現(xiàn)在已經(jīng)有了不少跨平臺(tái)的編程標(biāo)準(zhǔn),比如C++/Fortran、OpenMP、SYCL和Kokkos等。
最后是復(fù)雜的數(shù)據(jù)存取過(guò)程,異構(gòu)帶來(lái)的不僅是不同層級(jí)的計(jì)算架構(gòu),還有不同層級(jí)的存儲(chǔ)架構(gòu),比如主存儲(chǔ)、主緩存、設(shè)備主存、設(shè)備緩存和寄存器等等。數(shù)據(jù)要在多種存儲(chǔ)類型之間移動(dòng),程序執(zhí)行要在同時(shí)對(duì)多種存儲(chǔ)進(jìn)行存取,這些存儲(chǔ)方式的帶寬和延遲也不盡相同。
異構(gòu)計(jì)算的未來(lái)
在近期舉辦的CIUK 2021大會(huì)上,HPC研究組的Simon McIntosh-Smith教授發(fā)表了他自己對(duì)異構(gòu)計(jì)算未來(lái)的看法。他認(rèn)為異構(gòu)計(jì)算的趨勢(shì)還將繼續(xù)發(fā)展下去,差異化不會(huì)消失,但也不會(huì)出現(xiàn)極度差異化的情況。
其次CPU與GPU的關(guān)系將更加緊密,比如緩存一致和封裝集成等,其他加速器在特定場(chǎng)景下聲稱的性能數(shù)據(jù)都很優(yōu)秀,但要說(shuō)通用計(jì)算性能,GPU還是要略勝一籌。而且依目前的趨勢(shì)來(lái)看,CPU也在慢慢汲取GPU上的優(yōu)點(diǎn),比如HBM、寬矢量處理器的核心、核心內(nèi)部的加速器等等。編程的困境固然已經(jīng)有了改善的跡象,但還有一段長(zhǎng)路要走。
審核編輯:何安淇
-
cpu
+關(guān)注
關(guān)注
68文章
10902瀏覽量
213007 -
異構(gòu)計(jì)算
+關(guān)注
關(guān)注
2文章
102瀏覽量
16338
原文標(biāo)題:異構(gòu)計(jì)算的前世今生
文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論