傳統(tǒng)的以處理器(CPU)為核心的計算系統(tǒng)正面臨前所未有的挑戰(zhàn)。一方面,已持續(xù)了50年的摩爾定律已明顯放緩了前進的步伐,依賴集成電路制造技術進步所帶來“紅利”正逐漸消失。另一方面,成指數增長的大數據應用對計算系統(tǒng)提出了更高的存儲容量及存儲訪問的需求。具有重大創(chuàng)新的新型計算系統(tǒng)即將出現(xiàn)。
潛在的新型計算系統(tǒng)包括量子計算機、神經網絡計算機、異構計算等。其中,異構計算以“CPU+”的形式出現(xiàn),具有較好的可行性及通用性,并能大幅提升系統(tǒng)性能和功耗效率,有望率先成熟并主導處理器市場。
異構計算系統(tǒng)包括幾類形式:
1)CPU+GPU:在芯片或系統(tǒng)中集成多個CPU和圖形處理器(GPU),利用CPU運行操作系統(tǒng)和執(zhí)行串行任務,用GPU處理3D圖形渲染、數學密集型計算。兩者結合,提升系統(tǒng)的性能和功耗效率。AMD、NVIDIA、IBM等企業(yè)在此領域投入了大量研究。很多系統(tǒng)產品(如天河超級計算機)集成了數量眾多的CPU芯片和GPU芯片。
2)CPU+FPGA:在芯片或系統(tǒng)中集成CPU和FPGA,以兼具計算、并行化、可重構等優(yōu)點。Altera和Xilinx的很多產品都集成了ARM等CPU。Intel收購Altera之后,預計將會出現(xiàn)很多Intel CPU +Altera FPGA的產品。
3)CPU+ASIC:集成CPU和ASIC,能針對某些特定應用大幅提升性能和功耗效率,不過這種產品的通用性不強。
異構計算的關鍵技術包括高速互連、共享內存的通信方式及統(tǒng)一化編程等。
CPU和GPU/FPGA之間需要高速、高帶寬的數據交互,特別是當CPU與GPU/FPGA不在同一芯片時,高速互連尤為重要。IBM與NVIDIA合作開發(fā)了Power處理器與GPU之間的高速接口NVLink,帶寬可達40GB/s。此外,硅基光互連也是一個重要的高速互連研究方向。IBM還聯(lián)合AMD、Google等公司聯(lián)合推出了OpenCAPI總線技術,以支持CPU與外部加速器的高速互連。
CPU和GPU需要有共享的統(tǒng)一尋址的內存訪問機制來提升數據交互的能力。為此,AMD、ARM、Qualcomm等公司建立了HSA(Heterogeneous System Architecture)聯(lián)盟并設立相關技術標準,使CPU和GPU能高效地協(xié)同處理。
目前的CPU、GPU、FPGA采用不同的編程語言及編程模式。為實現(xiàn)系統(tǒng)的無縫整合,還需要統(tǒng)一的編程。現(xiàn)有的面向異構計算的語言有OpenCL(Open Computing Language)、OpenMP、OpenACC等。這些編程方式還未得到全面的推廣,需進一步提升其效率及普及性。
異構系統(tǒng)已產生一些成功的例子。如天河一號A配備了14 336顆Intel Xeon CPU,7 168顆NVIDIA GPU,以及2 048 顆飛騰處理器。天河二號包含16 000個運算節(jié)點,每節(jié)點配備兩顆Intel Xeon CPU、三顆Xeon Phi協(xié)處理器。Xilinx的Spartan6集成了MicroBlaze嵌入式CPU及FPGA,Zynq集成了ARM Cortex-A9 CPU及FPGA。Altera的Arria V集成了ARM CPU及FPGA。Intel 的Xeon E5 2600 v4處理器據稱集成了FPGA,每瓦性能可提升70%。
“異構計算”方興未艾,還有很多科技及產業(yè)的關鍵問題有待解決。希望《電子技術應用》雜志2017年3期的“異構計算”專欄可以起到拋磚引玉的效果,吸引學術界及產業(yè)屆更多的研究人員投入其中,推動異構計算的快速發(fā)展。