劉 勝 盧 凱 郭 陽 劉 仲 陳海燕 雷元武 孫海燕 楊乾明 陳小文 陳勝剛 劉必慰 魯建壯
(國防科技大學(xué)計(jì)算機(jī)學(xué)院 長沙 410073)
(liusheng83@nudt.edu.cn)
高性能計(jì)算(high performance computing,HPC)是推動科學(xué)技術(shù)發(fā)展的基礎(chǔ)性領(lǐng)域之一,被稱為超級計(jì)算機(jī)的“下一個明珠”的E級高性能計(jì)算時代已經(jīng)悄然來臨.面向E級高性能計(jì)算的加速器領(lǐng)域逐漸發(fā)展成為全球最高端芯片的競技場.由AMD公司于2020年11月推出的INSTINCTTMMI100加速器的雙精度峰值計(jì)算能力已經(jīng)突破10TFLOPS量級,達(dá)到11.5TFLOPS,典型功耗為300 W[1].由英偉達(dá)公司于2020年5月推出的A100 GPU[2],其可編程部分的雙精度浮點(diǎn)峰值計(jì)算能力為9.7TFLOPS,張量核(tensor core)部分的雙精度浮點(diǎn)峰值計(jì)算能力高達(dá)19.5TFLOPS,典型功耗為400 W.根據(jù)報(bào)導(dǎo),英特爾公司也將于2021年末甚至更早推出代號為Ponte Vecchio的XeHPC系列GPU,預(yù)計(jì)性能也將高達(dá)數(shù)十TFLOPS[3].
作為國內(nèi)最早開始自主處理器設(shè)計(jì)的優(yōu)勢單位之一,國防科技大學(xué)一直以來都是高性能加速器領(lǐng)域強(qiáng)有力的競爭者.本文主要對國防科技大學(xué)自主設(shè)計(jì)的一款面向E級高性能計(jì)算的加速器進(jìn)行介紹.該芯片采用了CPU+GPDSP的異構(gòu)融合架構(gòu),兼顧高性能、高效能和高可編程性的特點(diǎn),雙精度浮點(diǎn)峰值性能可達(dá)10TFLOPS以上,典型應(yīng)用情況下效能在50GFLOPS/W左右,有望成為新一代E級超算系統(tǒng)的核心計(jì)算芯片.
該芯片采用了異構(gòu)融合架構(gòu),如圖1所示.由多核CPU和4個GPDSP_Cluster五部分組成.多核CPU包含32個FT-C662 CPU內(nèi)核(兼容ARM指令集),每個GPDSP_Cluster包含24個自定義指令集的FT-M64DSP核.作為芯片的主控部分,多核CPU可以訪問和調(diào)用所有的資源,4個GPDSP_Cluster相互獨(dú)立.該芯片將主控部分和運(yùn)算部分的互連在片內(nèi)解決,從而為兩者間的通信提供高數(shù)據(jù)帶寬.

Fig.1 Architecture of the chip圖1 芯片體系結(jié)構(gòu)
GPDSP_Cluster從標(biāo)、向量并行的64 b單核結(jié)構(gòu)、可擴(kuò)展多核結(jié)構(gòu)等方面實(shí)施了全方位、多層次并行優(yōu)化,充分開發(fā)應(yīng)用的指令級、數(shù)據(jù)級、任務(wù)級并行,并針對應(yīng)用進(jìn)行了指令集級別的定制,提高了典型應(yīng)用的峰值運(yùn)算能力和效能.每個GPDSP_Cluster包含6個DSP節(jié)點(diǎn)(每個DSP節(jié)點(diǎn)包含4個DSP核).GPDSP_Cluster內(nèi)包含一個全局共享存儲器,提供了片上高帶寬的數(shù)據(jù)傳輸.還包含一個HBM2轉(zhuǎn)接橋和控制器,以支持片外高帶寬數(shù)據(jù)傳輸.采用了具備高帶寬、支持優(yōu)先權(quán)仲裁和QoS等多個特點(diǎn)的多級CrossBar(CrossNet)片上網(wǎng)絡(luò)結(jié)構(gòu),保證了數(shù)據(jù)帶寬的穩(wěn)定發(fā)揮.
DSP內(nèi)核基于自主知識產(chǎn)權(quán)的指令集設(shè)計(jì).如圖2所示,采用了超長指令字(very long instruction word,VLIW)技術(shù)和標(biāo)向量協(xié)同融合的結(jié)構(gòu).向量部件由16個同構(gòu)的VPE陣列組成,每個VPE內(nèi)部包含3個乘加單元.指控單元(L1P/Fetch/Dispatch)同時向標(biāo)量單元(scalar unit)和向量單元(vector unit)派發(fā)指令,16個VPE采用SIMD的方式同時執(zhí)行相同的向量指令.標(biāo)量部件和向量部件各自有對應(yīng)本地的局部存儲器:標(biāo)量存儲器和陣列存儲器.DSP內(nèi)核擁有一個的DMA,支持靈活高效的數(shù)據(jù)傳輸方式(如點(diǎn)對點(diǎn)、廣播、分段、Super Gather等)以充分適應(yīng)不同的應(yīng)用需求.

Fig.2 Structure of DSP Core圖2 DSP內(nèi)核結(jié)構(gòu)圖
為了簡化存儲管理硬件邏輯設(shè)計(jì),多核CPU內(nèi)部支持硬件Cache一致性(包含16 MB的L2Cache),GPDSP_Cluster支持軟件管理的垂直存儲一致性.面向高性能計(jì)算以及AI等應(yīng)用需求,提出了一種多層次協(xié)同共享存儲結(jié)構(gòu),將加速器GPDSP核內(nèi)的私有存儲(近80 MB,峰值帶寬98TB/s)、全局共享存儲(共24 MB,峰值帶寬1.2 TB/s)、HBM存儲(4個HBM2,峰值帶寬1.2 TB/s,容量32 GB)三級存儲架構(gòu),通過高速DMA和片上網(wǎng)絡(luò)連接,提供了高帶寬的數(shù)據(jù)傳輸和核間數(shù)據(jù)交互能力.
本加速器集成了2個PCIE4.0接口.每個PCIE接口除了支持4.0規(guī)范外,還兼容3.0,2.0規(guī)范.每個接口為X16設(shè)計(jì),支持EP和RC模式.
針對異構(gòu)融合架構(gòu)設(shè)計(jì)并實(shí)現(xiàn)了一套支持異構(gòu)多核的類CUDA開發(fā)調(diào)試運(yùn)行環(huán)境.支持用戶在同一個界面中進(jìn)行多核CPU和GPDSP異構(gòu)程序的調(diào)試,支持用戶在同一個工程甚至在一個文件中編寫CPU和GPDSP異構(gòu)程序.
如圖3所示,該芯片軟件工具鏈包含了異構(gòu)編譯器、資源管理庫、異構(gòu)運(yùn)行時庫、異構(gòu)設(shè)備庫等,方便用戶快速開發(fā)面向典型領(lǐng)域的高性能應(yīng)用.GPDSP編譯器針對多核、超長指令字、向量等特點(diǎn)進(jìn)行了一系列優(yōu)化,具體包括標(biāo)量和向量指令級并行優(yōu)化、SIMD優(yōu)化、循環(huán)展開和軟流水優(yōu)化、跳轉(zhuǎn)延遲槽調(diào)度優(yōu)化、寄存器分配優(yōu)化、謂詞優(yōu)化等.

Fig.3 Structure of the software chain圖3 軟件工具鏈結(jié)構(gòu)圖
為了發(fā)揮加速器的計(jì)算能力和易用性,提供了面向用戶核心級代碼的線性匯編開發(fā)工具,能夠在大幅提高核心代碼效率的同時 降低程序優(yōu)化難度.此外還提供與結(jié)構(gòu)相匹配的手工匯編優(yōu)化算法庫,手工匯編優(yōu)化后的算法庫比普通C語言實(shí)現(xiàn)的庫函數(shù)效率能夠提高一個數(shù)量級以上.目前已經(jīng)完成了Linpack,HPCG,CNN等算法核心算法庫的開發(fā).
1)雙精度通用矩陣乘法(double general matrixmatrix multiplication,DGEMM)算法.采用DGEMM算法(執(zhí)行C′=A×B+C)對系統(tǒng)的計(jì)算效率進(jìn)行評測,其中矩陣A的規(guī)模為24576×512,矩陣B的規(guī)模為512×(1152×n),矩陣C的規(guī)模為24576×(1 152×n),n為矩陣規(guī)模的系數(shù).如圖4所示,DGEMM算法在系統(tǒng)的實(shí)測計(jì)算效率方面平均為94%.

Fig.4 Efficiency of DGEMM圖4 DGEMM算法的效率
2)卷積神經(jīng)網(wǎng)絡(luò)模型算法.在加速器上實(shí)現(xiàn)了深度卷積神經(jīng)網(wǎng)絡(luò)模型Alex Net.表1對比了本加速器與其他5種高性能GPU[4]實(shí)現(xiàn)Alex Net推理的計(jì)算性能.本加速器在深度卷積神經(jīng)網(wǎng)絡(luò)推理計(jì)算方面能夠達(dá)到15 108幀/秒,具有較高的計(jì)算性能.

Table 1 Comparison of Our Accelerator and Other GPUs表1 本加速器與其它GPU的性能對比
本文主要介紹了國防科技大學(xué)自主設(shè)計(jì)的面向E級高性能計(jì)算的加速器芯片.目前該芯片已經(jīng)順利流片和量產(chǎn),下一步將圍繞該芯片進(jìn)行工具鏈和應(yīng)用開發(fā)進(jìn)行更深入的工作.
作者貢獻(xiàn)聲明:盧凱(芯片架構(gòu)設(shè)計(jì))、郭陽(芯片結(jié)構(gòu)設(shè)計(jì))、劉仲(芯片算法評估)三人對本文具有同等貢獻(xiàn),均為通信作者.