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