1 引言
人工智能算法需要強(qiáng)大的計(jì)算能力支撐, 對(duì)算力的需求更是以超摩爾(Moore)定律增長(zhǎng) , 特別是深度學(xué)習(xí)算法大規(guī)模使用, 對(duì)計(jì)算能力提出更高要求。 智能算法并行性高、數(shù)據(jù)重用性強(qiáng), 而且不斷演進(jìn)、新算法層出不窮、計(jì)算模型不斷變化, 為處理器體系結(jié)構(gòu)設(shè)計(jì)帶來巨大的設(shè)計(jì)空間。 人工智能處理器體系結(jié)構(gòu)設(shè)計(jì)目前存在著兩種類型設(shè)計(jì): 以TPU 為代表的專用架構(gòu)和以GPU 為代表的通用架構(gòu)。 前者性能功耗比高、使用簡(jiǎn)單, 但缺乏一定的靈活性和通用性; 后者具有較好的靈活性和通用性, 但是增加了功耗, 編程和算法設(shè)計(jì)更加復(fù)雜。
國(guó)產(chǎn)眾核處理器具有融合異構(gòu)體系結(jié)構(gòu)、多維并行數(shù)據(jù)通信、柔性優(yōu)化的存儲(chǔ), 以及高效平衡的運(yùn)算核心等特性, 為人工智能應(yīng)用提供了有效支撐。 深度融合異構(gòu)核心架構(gòu)集成通用處理核心和領(lǐng)域通用計(jì)算核心, 滿足通用計(jì)算和智能計(jì)算領(lǐng)域通用的智能計(jì)算能力。 多維并行數(shù)據(jù)通信體系采用基于輕量級(jí)寄存器通信和運(yùn)算核心快速同步技術(shù), 實(shí)現(xiàn)運(yùn)算核心間的低延遲高帶寬的數(shù)據(jù)交換和靈活高效同步, 提升人工智能應(yīng)用的核心運(yùn)算效率。 柔性優(yōu)化存儲(chǔ)體系采用軟硬件結(jié)合的方法, 使片上存儲(chǔ)管理柔性靈活, 解決智能計(jì)算存儲(chǔ)帶寬受限和延遲增加的難題。 高效平衡的運(yùn)算核心在保證智能計(jì)算類應(yīng)用處理效率的同時(shí), 通過集成更多的核心獲得更高的并行處理性能, 可同時(shí)滿足人工智能計(jì)算需求。
2 眾核處理器的發(fā)展
眾核處理器是當(dāng)前支持人工智能計(jì)算的關(guān)鍵核心器件, 發(fā)展過程中涌現(xiàn)眾多類型的技術(shù)和架構(gòu), 大量研究者和公司為推動(dòng)其發(fā)展貢獻(xiàn)了智慧和力量。
粗粒度可重構(gòu)體系結(jié)構(gòu)是眾核處理器形成的先導(dǎo)技術(shù)。 在2000年前后出現(xiàn)了一大批基于交叉開關(guān)、線性陣列、MESH等3大類體系結(jié)構(gòu)的粗粒度可重構(gòu)處理器。 基于全交叉開關(guān)的體系結(jié)構(gòu)具有很強(qiáng)的通信能力, 通常采用簡(jiǎn)化的交叉開關(guān)來應(yīng)對(duì)由于處理單元數(shù)量的增加而導(dǎo)致實(shí)現(xiàn)代價(jià)的指數(shù)增長(zhǎng), 如用于DSP數(shù)據(jù)通道的快速原型PADDI ,PADDI-2 ; 基于一個(gè)或者多個(gè)線性陣列的體系結(jié)構(gòu), 可提供可重構(gòu)的流水線Stage, 實(shí)現(xiàn)部分快速動(dòng)態(tài)流水線重構(gòu)和運(yùn)行時(shí)對(duì)配置流和數(shù)據(jù)流的調(diào)度, 如PIPERENCH ; 基于Mesh的體系結(jié)構(gòu), 將PE按照二維陣列進(jìn)行排列, 相鄰PE可以通信, 一般也支持行或者列內(nèi)PE之間直接通信, 可支持編譯時(shí)確定的靜態(tài)網(wǎng)絡(luò)和運(yùn)行時(shí)確定的動(dòng)態(tài)網(wǎng)絡(luò), 如RAW 。 粗粒度可重構(gòu)體系結(jié)構(gòu)的研究成果除部分轉(zhuǎn)化為工業(yè)產(chǎn)品(如TILE系列 2))外, 其更多是集中于學(xué)術(shù)領(lǐng)域。
工業(yè)界眾核處理器開始于GPU. 2002年GPGPU (通用圖形計(jì)算)的概念逐漸明確, 實(shí)現(xiàn)浮點(diǎn)矩陣乘矩陣算法 3)并開始應(yīng)用于傳統(tǒng)的科學(xué)工程計(jì)算領(lǐng)域; 2005年, GPU實(shí)現(xiàn)了浮點(diǎn)矩陣的LU分解計(jì)算。 這一階段, GPU面臨的最主要的問題是編程困難, 必須把科學(xué)工程算法映射成傳統(tǒng)的圖像處理流程。 同一時(shí)期的2002年, IBM開展了面向P級(jí)超級(jí)計(jì)算機(jī)的C64研發(fā), 其核心是Cyclops-64眾核處理器。 Cyclops-64包含80顆核心, 通過交叉開關(guān)互連, 峰值性能達(dá)80 GFlops. 2005年, IBM發(fā)布CELL處理器, 集成了不同功能的兩類核心: 主控制核心(PPE)和協(xié)處理器核心(SPE), 核心之間通過總線互連, 峰值性能可達(dá)102 GFlops. 2008年, IBM基于CELL構(gòu)建了Roadrunner超級(jí)計(jì)算機(jī), Linpack持續(xù)性能首次超過1 PFlops, 并在TOP500排行榜中名列第一, 對(duì)業(yè)界產(chǎn)生了巨大的影響。
隨著眾核處理器體系結(jié)構(gòu)的持續(xù)改進(jìn), 其適應(yīng)性和好用性得到不斷提高。 高性能GPU逐漸增加雙精度浮點(diǎn)運(yùn)算單元、內(nèi)存控制器增加ECC校驗(yàn), 計(jì)算方式更加通用。 特別是2007年CUDA軟件開發(fā)套件的發(fā)布, 為GPU的廣泛應(yīng)用鋪平道路。 2010年6月, 曙光公司的銀河超級(jí)計(jì)算機(jī)使用NVIDIA的Tesla, 測(cè)試峰值性能1.27 PFlops; 2010年11月, 天河– 1A使用Tesla測(cè)試性能達(dá)到2.56 PFlops; GPU在高性能計(jì)算領(lǐng)域得到了越來越廣泛的使用, 成為了眾核處理器的事實(shí)標(biāo)準(zhǔn)。 Intel作為HPC領(lǐng)域的重要廠商, 在眾核處理器領(lǐng)域不斷加大投入, 2006年開始研究Larrabee體系結(jié)構(gòu), 2010年發(fā)布了MIC體系結(jié)構(gòu), 推出Xeon PHI高性能眾核處理器, 包含57~ ~ 72顆X86核心。 2013年, 國(guó)防科技大學(xué)研制了基于PHI的“天河二號(hào)”超級(jí)計(jì)算機(jī), 性能居當(dāng)時(shí)世界第一。
根據(jù)計(jì)算核心的結(jié)構(gòu)復(fù)雜度和組織方式, 可以將眾核處理器分為基于通用處理核心和基于計(jì)算簇的眾核處理器兩大類。
基于通用處理核心眾核處理器可以看作是多核結(jié)構(gòu)處理器的進(jìn)一步延伸, 通過片上互連網(wǎng)絡(luò)(NoC)集成眾多的通用處理器核心。 計(jì)算核心一般由通用核心簡(jiǎn)化而來, 所有核心功能齊全、計(jì)算能力強(qiáng)。 但通常會(huì)簡(jiǎn)化指令調(diào)度、推測(cè)執(zhí)行等結(jié)構(gòu), 計(jì)算核心內(nèi)的運(yùn)算部件一般支持SIMD, 單核心內(nèi)通常會(huì)保留通用處理器中傳統(tǒng)的多級(jí)Cache存儲(chǔ)結(jié)構(gòu), 典型代表包括Intel的Larrabee/MIC架構(gòu)處理器、SCC架構(gòu)處理器, Tilera的TILE-GX系列處理器 。
基于計(jì)算簇的眾核處理器片上集成了大量簡(jiǎn)單的計(jì)算核心, 旨在通過簡(jiǎn)單運(yùn)算部件的聚合提供超高計(jì)算性能。 這類眾核處理器計(jì)算核心為簡(jiǎn)單計(jì)算部件, 多個(gè)核心以組或簇的形式進(jìn)行組織, 可通過單指令多線程流(SIMT)等數(shù)據(jù)流并行的方式提供強(qiáng)大的并行計(jì)算能力。 片上通常還集成有面向領(lǐng)域的專用加速處理部件, 計(jì)算簇內(nèi)所有計(jì)算核心共用指令發(fā)射單元, 并共享寄存器文件、一級(jí)Cache等存儲(chǔ)資源。 計(jì)算簇間則共享二級(jí)Cache和主存等。 典型代表主要包括NVIDIA的GPGPU系列處理器, 如Fermi, Kepler ; AMD/ATI的GPU系列, 如RV架構(gòu)處理器、GCN架構(gòu)處理器 5)等。
國(guó)際上眾核處理器發(fā)展的同時(shí), 國(guó)內(nèi)研究也在同步開展, 包括Godson-T眾核處理器、YHFT64-2流處理器, 以及申威眾核處理器等。 Godson-T采用了2D MESH結(jié)構(gòu), 8××8陣列結(jié)構(gòu)共64個(gè)處理器核, 兼容MIPS指令集。 YHFT64-2處理器采用異構(gòu)多核架構(gòu), 包含64核心處理器,具有傳統(tǒng)通用體系結(jié)構(gòu)的靈活性,又擁有大量的計(jì)算資源,峰值計(jì)算能力強(qiáng)大。 申威眾核處理器應(yīng)用于“神威? ? 太湖之光”超級(jí)計(jì)算機(jī)系統(tǒng)中, 采用片上融合異構(gòu)的體系結(jié)構(gòu), 并采用統(tǒng)一的指令集系統(tǒng), 兼顧應(yīng)用的好用性和性能, 實(shí)現(xiàn)較優(yōu)的性能功耗比和計(jì)算密度。
以深度學(xué)習(xí)為代表的人工智能領(lǐng)域已開啟體系結(jié)構(gòu)的新時(shí)代。 當(dāng)前人工智能應(yīng)用對(duì)算力的需求更是以超摩爾定律的速度增長(zhǎng), 從2012年到2017年計(jì)算需求增加30萬倍, 即每3.5個(gè)月翻一倍。 人工智能算法的核心計(jì)算為低精度線性代數(shù), 一方面具有足夠的適應(yīng)性, 可以推廣到眾多領(lǐng)域; 另一方面具有足夠的特殊性, 可以受益于領(lǐng)域?qū)S皿w系結(jié)構(gòu)設(shè)計(jì)。
眾核處理器體系結(jié)構(gòu)不僅對(duì)科學(xué)工程計(jì)算具有較高的效能和較好的適應(yīng)性, 其對(duì)雙精度、單精度矩陣計(jì)算的支持同樣能夠在一定程度上滿足人工智能關(guān)鍵計(jì)算需求。 因此, 眾核處理器體系結(jié)構(gòu)對(duì)人工智能計(jì)算具有天然的優(yōu)勢(shì)。 同時(shí), 眾核處理器又根據(jù)人工智能計(jì)算特殊的需求, 不斷進(jìn)行改進(jìn)完善, 例如增加其他計(jì)算核心加速的支持、增加混合精度計(jì)算的支持等。 NVIDIA在V100, Turing眾核處理器中增加顯著提升性能的TensorCore, 使其人工智能計(jì)算峰值性能是雙精度浮點(diǎn)的約17倍。 AMD的VEGA架構(gòu)同樣顯著提升人工智能計(jì)算性能。 Intel推出的Knights Mill眾核處理器, 增加了支持人工智能計(jì)算的特殊指令。
3 面向智能計(jì)算的國(guó)產(chǎn)眾核架構(gòu)關(guān)鍵技術(shù)
卷積和矩陣乘是智能計(jì)算最核心的操作, 具有高度的并行性和數(shù)據(jù)重用性等特點(diǎn), 當(dāng)前人工智能領(lǐng)域的處理器都圍繞如何對(duì)加速這兩種操作進(jìn)行體系結(jié)構(gòu)設(shè)計(jì)。 國(guó)產(chǎn)眾核處理器要良好地適應(yīng)智能計(jì)算需求, 就必須有效支持大規(guī)模的卷積和矩陣乘計(jì)算。 國(guó)產(chǎn)眾核處理器的運(yùn)算核心需要具備靈活的控制能力, 可實(shí)現(xiàn)卷積和矩陣乘計(jì)算復(fù)雜循環(huán)過程的高效控制和數(shù)據(jù)調(diào)度; 通過高效的片上通信支持卷積權(quán)重用和輸入特征值的全局共享; 通過指令重排精確控制權(quán)重和輸入特征值, 從局部片上存儲(chǔ)到計(jì)算流水線的讀取與計(jì)算重疊, 進(jìn)一步提升計(jì)算性能; 通過靈活的數(shù)據(jù)移動(dòng)和片上布局實(shí)現(xiàn)卷積和輸入特征值的靈活轉(zhuǎn)換, 減少數(shù)據(jù)重整開銷; 片上多層次并行機(jī)制, 支持高效的片上數(shù)據(jù)并行策略, 提升數(shù)據(jù)交換性能和權(quán)值更新性能。
從總整體上看, 國(guó)產(chǎn)眾核處理器架構(gòu)需要具有多項(xiàng)創(chuàng)新的關(guān)鍵技術(shù)以有效支持人工智能計(jì)算, 包括: 融合異構(gòu)的體系結(jié)構(gòu)、輕量級(jí)片上通信機(jī)制、柔性優(yōu)化的存儲(chǔ)體系、高效平衡的運(yùn)算核心架構(gòu)等。
3.1 融合異構(gòu)的體系結(jié)構(gòu)
眾核處理器在同一芯片內(nèi)同時(shí)集成充分挖掘TLP的“重”核心和結(jié)構(gòu)簡(jiǎn)單用于ILP的“輕”核心, 可高效支持復(fù)雜的人工智能應(yīng)用和算法實(shí)現(xiàn), 兼顧好用性和性能, 實(shí)現(xiàn)較優(yōu)的性能功耗比和高的計(jì)算密度。
運(yùn)算核心(“輕”核心)與控制核心(“重”核心)協(xié)同支持人工智能應(yīng)用中不同類型任務(wù)。 運(yùn)算核心支持多種寬度SIMD, 為人工智能應(yīng)用提供其所需的主要計(jì)算能力; 運(yùn)算核心支持軟件管理片上局部存儲(chǔ), 并通過高效片上網(wǎng)絡(luò)結(jié)構(gòu), 實(shí)現(xiàn)數(shù)據(jù)級(jí)和線程級(jí)并行, 支持更加靈活、豐富的人工智能算法實(shí)現(xiàn)機(jī)制, 例如算法層次化、數(shù)據(jù)片上共享、MPMD模式等。 控制核心負(fù)責(zé)人工智能任務(wù)中難以并行化部分的計(jì)算, 實(shí)現(xiàn)指令級(jí)并行, 通過多級(jí)Cache重用應(yīng)用的空間和時(shí)間局部性, 支持復(fù)雜的超參數(shù)調(diào)優(yōu)、訓(xùn)練迭代、數(shù)據(jù)拆分等。
為有效解決人工智能異構(gòu)任務(wù)管理困難、片上數(shù)據(jù)共享復(fù)雜、數(shù)據(jù)一致性難以處理、執(zhí)行模型兼容難等挑戰(zhàn), 眾核架構(gòu)的不同核心之間需要采用統(tǒng)一指令系統(tǒng)、統(tǒng)一執(zhí)行模型, 支持多種存儲(chǔ)空間管理模式等技術(shù), 實(shí)現(xiàn)片上異構(gòu)核心的深度融合。
3.2 輕量級(jí)片上通信機(jī)制
眾核處理器核心數(shù)多, 每個(gè)核心的局部存儲(chǔ)空間受限, 每個(gè)核心能夠獨(dú)立處理的工作集較小, 對(duì)主存訪問帶寬和延遲需求大, 而人工智能應(yīng)用多為“存算密集型應(yīng)用”。 眾核處理器必須具有高效的核心間片上數(shù)據(jù)重用機(jī)制擴(kuò)大工作集, 減少應(yīng)用的訪存需求, 最大限度保證處理器計(jì)算能力發(fā)揮。 采用輕量級(jí)片上通信機(jī)制, 實(shí)現(xiàn)運(yùn)算核心間的低延遲高帶寬的數(shù)據(jù)交換, 提升運(yùn)算核心密切協(xié)同的執(zhí)行效率, 顯著提高片上數(shù)據(jù)的重用效率, 有效緩解眾核處理器面臨的“存儲(chǔ)墻”問題。
輕量級(jí)片上通信機(jī)制使用雙邊協(xié)議, 實(shí)現(xiàn)輕量級(jí)的阻塞和非阻塞通信。 源核心將數(shù)據(jù)送入發(fā)送部件, 發(fā)送指令即執(zhí)行完成, 流水線可繼續(xù)執(zhí)行; 目標(biāo)核心使用接收指令, 從接收緩沖中獲取有效數(shù)據(jù)。 為實(shí)現(xiàn)通信的高效和物理實(shí)現(xiàn)的精簡(jiǎn), 通信協(xié)議需要避免為了建立通信進(jìn)行復(fù)雜的握手或同步協(xié)議, 并簡(jiǎn)化簇通信網(wǎng)絡(luò)的設(shè)計(jì)復(fù)雜度和開銷。 與傳統(tǒng)的片上網(wǎng)絡(luò)通信機(jī)制相比, 輕量級(jí)通信機(jī)制實(shí)現(xiàn)運(yùn)算核心需要盡量避免經(jīng)過多層次片上存儲(chǔ)層的搬移。
運(yùn)算核心間輕量級(jí)通信機(jī)制從提高片上數(shù)據(jù)重用率的角度, 需要實(shí)現(xiàn)核心間數(shù)據(jù)細(xì)粒度、低延遲交換/移動(dòng), 并支持多播等集合通信功能。 例如, 對(duì)人工智能應(yīng)用的核心運(yùn)算(矩陣乘矩陣運(yùn)算), 輕量級(jí)通信可提升超過10個(gè)百分點(diǎn)的效率。
3.3 柔性優(yōu)化的存儲(chǔ)體系
針對(duì)智能計(jì)算過程中計(jì)算密度大這一特性, 眾核處理器需要實(shí)現(xiàn)靈活的數(shù)據(jù)移動(dòng)和片上布局、可重構(gòu)局部數(shù)據(jù)存儲(chǔ)器技術(shù)的片上存儲(chǔ)體系。 采用軟硬件結(jié)合的方法, 使片上存儲(chǔ)管理柔性靈活, 數(shù)據(jù)傳輸性能優(yōu)化, 有效解決了智能計(jì)算存儲(chǔ)帶寬受限和延遲增加的難題, 提高了眾核架構(gòu)的效率和適應(yīng)面。
(1) 靈活的數(shù)據(jù)移動(dòng)和片上布局。 運(yùn)算核心在能夠直接訪問主存空間時(shí), 為支持片上存儲(chǔ)的高效使用和數(shù)據(jù)在運(yùn)算核心中的靈活分配, 需要支持靈活的數(shù)據(jù)移動(dòng)和片上布局, 支持?jǐn)?shù)據(jù)在核心存儲(chǔ)和主存間的高效異步數(shù)據(jù)傳輸, 實(shí)現(xiàn)計(jì)算與訪存的并行。 根據(jù)人工智能算法的訪存特征, 存儲(chǔ)接口實(shí)現(xiàn)了基于滑動(dòng)窗口平行的調(diào)度策略和多種映射性能優(yōu)化算法, 有效提高了存儲(chǔ)帶寬的使用效率。
眾核架構(gòu)支持多種數(shù)據(jù)布局。 支持單運(yùn)算核心模式、多播模式、行模式、廣播行模式和矩陣模式。 多播模式將主存中每個(gè)核心都需要的數(shù)據(jù)提供給多個(gè)運(yùn)算核心; 行模式和廣播行模式實(shí)現(xiàn)行維度循環(huán)分布數(shù)據(jù)塊的傳輸; 矩陣模式實(shí)現(xiàn)整個(gè)運(yùn)算核心簇內(nèi)二維格柵上循環(huán)分布數(shù)據(jù)塊的傳輸。 單核心模式、行模式和矩陣模式同時(shí)支持主存到局部數(shù)據(jù)存儲(chǔ)器和局部數(shù)據(jù)存儲(chǔ)器到主存的傳輸, 其他模式只支持主存到局部數(shù)據(jù)存儲(chǔ)器方向的傳輸。
眾核處理器的多模式數(shù)據(jù)流傳輸技術(shù), 可以有效提高智能計(jì)算數(shù)據(jù)重用率, 進(jìn)而提升人工智能算法性能。
(2) 可重構(gòu)數(shù)據(jù)存儲(chǔ)技術(shù)。 面向智能計(jì)算的運(yùn)算核心設(shè)計(jì)力求簡(jiǎn)潔高效, 采用可重構(gòu)局部數(shù)據(jù)存儲(chǔ)器技術(shù)。 運(yùn)算核心的數(shù)據(jù)存儲(chǔ)可由軟件配置成軟硬協(xié)同Cache或片上存儲(chǔ)器, 以完成不同特征數(shù)據(jù)的緩存管理。 這兩種數(shù)據(jù)存儲(chǔ)管理方式可同時(shí)存在并支持容量動(dòng)態(tài)劃分, 充分結(jié)合了硬件的高效性和軟件的靈活性, 降低設(shè)計(jì)開銷并滿足人工智能應(yīng)用對(duì)存儲(chǔ)的需要。
軟硬件協(xié)同Cache中Cache行的數(shù)據(jù)和Cache行tag信息均保存在局部數(shù)據(jù)存儲(chǔ)器中, 設(shè)置一個(gè)固定寄存器保存整個(gè)Cache的信息。 軟件管理Cache的裝入與淘汰, 硬件提供指令加速命中查詢和地址轉(zhuǎn)換的性能, 軟硬件協(xié)同完成數(shù)據(jù)的緩存管理, 充分結(jié)合硬件的高效性和軟件的靈活性, 以較小的硬件開銷實(shí)現(xiàn)高效的訪存優(yōu)化。 在軟硬件協(xié)同Cache中, 硬件負(fù)責(zé)命中查詢及不命中時(shí)的自動(dòng)跳轉(zhuǎn), 降低軟件實(shí)現(xiàn)的開銷(例如代碼膨脹、條件分支判斷等)。 軟件負(fù)責(zé)管理Cache的裝入與淘汰。 程序在運(yùn)行時(shí)可對(duì)應(yīng)多個(gè)Cache, 軟件負(fù)責(zé)不同Cache的數(shù)據(jù)訪問在局部數(shù)據(jù)存儲(chǔ)器中的有效隔離, 避免互相沖突。
3.4 高效平衡的運(yùn)算核心架構(gòu)
根據(jù)人工智能應(yīng)用的分析, 眾核架構(gòu)可采用弱亂序流水線結(jié)構(gòu), 其主要特點(diǎn)是確定性執(zhí)行基礎(chǔ)上的有限程度亂序。 確定性執(zhí)行的主要目的是減少推測(cè)執(zhí)行帶來的額外功率開銷, 同時(shí)可減少為緩存未退出的推測(cè)執(zhí)行指令而設(shè)置的重定序緩沖等部件的面積開銷; 有限程度的亂序是指基于指令塊的指令調(diào)度發(fā)射策略, 可以有效隱藏一些長(zhǎng)延遲事件(比如離散訪問主存)帶來的性能損失。 弱亂序流水線結(jié)構(gòu)在改善順序流水線性能的同時(shí)有效控制結(jié)構(gòu)復(fù)雜度。
采用弱亂序流水線結(jié)構(gòu)的運(yùn)算核心雖然降低了硬件復(fù)雜度, 仍可高效處理智能計(jì)算類應(yīng)用, 主要表現(xiàn)在: 運(yùn)算核心采用的面向精簡(jiǎn)運(yùn)算核心的高效轉(zhuǎn)移預(yù)測(cè)機(jī)制, 通過編譯指導(dǎo)的靜態(tài)轉(zhuǎn)移預(yù)測(cè)、轉(zhuǎn)移提示和分支回跳預(yù)取等策略, 以較小的代價(jià)實(shí)現(xiàn)了較高的IPC. 對(duì)于運(yùn)算規(guī)整的智能計(jì)算應(yīng)用, 在保證指令流水性能的同時(shí), 省去了傳統(tǒng)轉(zhuǎn)移預(yù)測(cè)機(jī)制依賴的大容量轉(zhuǎn)移歷史表, 減少面積開銷; 智能計(jì)算類應(yīng)用是數(shù)據(jù)密集型應(yīng)用, 具有批量數(shù)據(jù)處理需求, 運(yùn)算核心實(shí)現(xiàn)的單指令多數(shù)據(jù)流技術(shù)可以高效地處理批量數(shù)據(jù), 降低流水線指令控制開銷, 節(jié)省功耗; 運(yùn)算核心采用的局部數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)結(jié)合批量數(shù)據(jù)傳輸技術(shù), 對(duì)數(shù)據(jù)訪問規(guī)律和確定的智能計(jì)算可以有效地隱藏?cái)?shù)據(jù)訪問延遲, 并極大地提高數(shù)據(jù)局部性訪問效率, 降低了傳統(tǒng)數(shù)據(jù)Cache存在的容量失效導(dǎo)致數(shù)據(jù)訪問延遲不能隱藏的風(fēng)險(xiǎn)。
高效平衡的運(yùn)算核心結(jié)構(gòu)使得單芯片可以集成更多的運(yùn)算核心, 在保證智能計(jì)算類應(yīng)用處理效率的同時(shí), 通過集成更多的核心獲得更高的并行處理性能。
4 基于國(guó)產(chǎn)眾核處理器的智能計(jì)算應(yīng)用性能分析
當(dāng)前國(guó)產(chǎn)眾核處理器已經(jīng)支持相對(duì)完整的軟件生態(tài)(例如線性代數(shù)基礎(chǔ)庫swBLAS、深度學(xué)習(xí)庫swDNN、支持深度學(xué)習(xí)框架swCaffe等), 支持許多典型的人工智能應(yīng)用(例如醫(yī)學(xué)影像、圍棋、語音識(shí)別等), 取得較好的測(cè)試性能。
卷積計(jì)算是深度學(xué)習(xí)的典型算法, swDNN 重點(diǎn)對(duì)其進(jìn)行優(yōu)化加速: 利用雙緩沖機(jī)制, 為卷積計(jì)算的每一部分?jǐn)?shù)據(jù)分配雙倍的LDM空間, 保證計(jì)算和訪存相對(duì)獨(dú)立, 實(shí)現(xiàn)計(jì)算訪存重疊; 利用靈活的片上網(wǎng)絡(luò)和多種DMA機(jī)制, 保證不同卷積計(jì)算到運(yùn)算核心陣列的高效映射; 利用運(yùn)算核心雙流水線特征, 通過最大化訪存指令和計(jì)算指令重疊, 減少計(jì)算單元的等待時(shí)間, 提升卷積性能。 眾核處理器利用swDNN執(zhí)行卷積計(jì)算, 與同一時(shí)期的商用眾核處理器NVIDIA的K40m (使用cuDNN庫)相比, 性能提升2~ ~ 9倍。
swCaffe 是Caffe深度學(xué)習(xí)框架在眾核處理器上的移植, 集成swDNN和swBLAS, 實(shí)現(xiàn)功能和性能上的定制和優(yōu)化, 同時(shí)采用參數(shù)服務(wù)器進(jìn)行全局參數(shù)更新, 支持計(jì)算通信重疊的同步更新策略。 基于swCaffe的卷積計(jì)算在單個(gè)運(yùn)算核心陣列上的性能是單顆Intel Xeon處理器的3.5倍; 在單顆眾核處理器上的性能是K40m的1.5倍; 并行訓(xùn)練可獲得較好的強(qiáng)可擴(kuò)展性和弱可擴(kuò)展性。
利用256個(gè)眾核處理器運(yùn)行圍棋訓(xùn)練程序, 其深度學(xué)習(xí)模型包括39層CNN網(wǎng)絡(luò), 使用了2.4億個(gè)訓(xùn)練樣本。 利用128個(gè)眾核處理器, 訓(xùn)練醫(yī)療圖像處理器模型, 模型基于AlexNet, VGG等多種網(wǎng)絡(luò), 訓(xùn)練數(shù)據(jù)達(dá)1 TB 。 利用眾核處理器完成了超過10 TB數(shù)據(jù)的遙感圖像分類模型訓(xùn)練。
5 總結(jié)
在人工智能(特別是深度學(xué)習(xí))的推動(dòng)下, 眾核處理器體系結(jié)構(gòu)已經(jīng)向著智能計(jì)算的方向發(fā)展。 人工智能計(jì)算的復(fù)雜性、靈活性和領(lǐng)域?qū)S眯酝苿?dòng)國(guó)產(chǎn)眾核處理器體系結(jié)構(gòu)未來的發(fā)展。 隨著智能算法不斷演進(jìn), 新算法層出不窮, 算法模型也在不斷變化, 需要構(gòu)建一種動(dòng)態(tài)可變的眾核處理器架構(gòu)并保證可編程性, 以應(yīng)對(duì)算法的變換和迭代; 設(shè)計(jì)新的多層次多粒度片上訪存和通信管理機(jī)制, 充分適應(yīng)人工智能應(yīng)用片上數(shù)據(jù)共享和移動(dòng)特征, 提升計(jì)算能力的同時(shí), 有效降低訪存需求; 面向人工智能核心算法, 構(gòu)建可定制的加速核心, 快速應(yīng)對(duì)算法的變化, 采用高能效結(jié)構(gòu)和設(shè)計(jì)方法, 實(shí)現(xiàn)綠色節(jié)能目標(biāo).
評(píng)論
查看更多