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