亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RISC-V 的神經(jīng)網(wǎng)絡(luò)加速器硬件實(shí)現(xiàn)*

        2023-03-22 07:23:24鞠虎高營田青周穎
        電子與封裝 2023年2期
        關(guān)鍵詞:加速器指令架構(gòu)

        鞠虎,高營,田青,周穎

        (中國電子科技集團(tuán)公司第五十八研究所,江蘇無錫 214035)

        1 引言

        近年來人工智能(AI)算法不斷取得突破性進(jìn)展,各種復(fù)雜的深度學(xué)習(xí)算法已滲透到人類社會生活的諸多方面,如智能交通、無人駕駛、智慧醫(yī)療等[1]。目前大多數(shù)深度學(xué)習(xí)算法采用圖形處理器(GPU)進(jìn)行訓(xùn)練與推理,相比中央處理器(CPU),GPU 極大地提升了深度學(xué)習(xí)算法的訓(xùn)練與推理速度。盡管GPU 計(jì)算資源豐富,但是存在極大的功耗開銷,在硬件資源和功耗受限的條件下,GPU 不是一個(gè)很好的計(jì)算加速平臺。國內(nèi)外公司都在積極推動AI 芯片的研發(fā),英偉達(dá)推出了基于NVIDIA Volta 架構(gòu)的NVIDIA Tesla V100GPU[2],可實(shí)現(xiàn)每秒120 萬億次的峰值運(yùn)算能力。谷歌面向云業(yè)務(wù)推出脈動陣列架構(gòu)[3],峰值計(jì)算能力達(dá)到每秒92 萬億次計(jì)算操作,增加了浮點(diǎn)計(jì)算單元和高帶寬內(nèi)存。國內(nèi)在GPU 和現(xiàn)場可編程邏輯門陣列(FPGA)芯片領(lǐng)域基礎(chǔ)相對薄弱,百度開發(fā)的云端AI芯片“昆侖”的峰值處理速度達(dá)到每秒260 萬億次定點(diǎn)運(yùn)算。寒武紀(jì)發(fā)布的云端智能芯片MLU100 的最高峰值速度可達(dá)166.4 萬億次定點(diǎn)運(yùn)算,可支持各類深度學(xué)習(xí)和常見機(jī)器學(xué)習(xí)算法。這類處理器大多基于精簡指令微處理器(ARM)架構(gòu)[4],ARM 架構(gòu)雖具有良好的生態(tài),但存在供應(yīng)鏈不穩(wěn)定、自主可控性弱等缺點(diǎn)。第五代開放精簡指令集(RISC-V)[5-6]可基于應(yīng)用場景,進(jìn)行指令集的自主修改,因此研究基于RISC-V 的神經(jīng)網(wǎng)絡(luò)加速器[7]架構(gòu)可為后續(xù)AI 芯片的研究和工程實(shí)現(xiàn)奠定基礎(chǔ)。

        本文基于RISC-V,生成了Linux 內(nèi)核,構(gòu)建了RISC-V 開發(fā)環(huán)境;定義了深度神經(jīng)網(wǎng)絡(luò)加速器指令集,實(shí)現(xiàn)了數(shù)據(jù)加載、計(jì)算和結(jié)果存儲等操作;基于深度學(xué)習(xí)編譯器,實(shí)現(xiàn)了對主流深度學(xué)習(xí)開發(fā)框架的支持;基于亞科鴻禹開發(fā)板以及接口擴(kuò)展板,將深度神經(jīng)網(wǎng)絡(luò)加速器和RISC-V CPU 集成,并通過深度學(xué)習(xí)編譯棧,完成了ZFNet 和ResNet20 神經(jīng)網(wǎng)絡(luò)部署,實(shí)現(xiàn)了圖像分類演示的功能。

        2 基于RISC-V CPU 的深度神經(jīng)網(wǎng)絡(luò)加速器

        2.1 神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)設(shè)計(jì)

        2.1.1 輕量級ZFNet 神經(jīng)網(wǎng)絡(luò)

        ZFNet 神經(jīng)網(wǎng)絡(luò)在AlexNet 網(wǎng)絡(luò)結(jié)構(gòu)[9]上進(jìn)行微調(diào),提出了一個(gè)新的卷積神經(jīng)網(wǎng)絡(luò)可視化技術(shù)(反卷積),以輔助觀察中間層及分類層的輸出特征。ZFNet是一個(gè)8 層網(wǎng)絡(luò),采用修正線性單元(ReLU)替換Sigmoid函數(shù)作為激活單元,避免了梯度消失問題,同時(shí),在計(jì)算上采用重疊的最大池化,以避免池化的模糊效果,提升了特征提取的豐富性。本文對ZFNet 進(jìn)行輕量化處理以降低網(wǎng)絡(luò)參數(shù)量,修改后的ZFNet(M-ZFNet)網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,包含6 層卷積和2 層全連接。

        圖1 M-ZFNet 網(wǎng)絡(luò)架構(gòu)

        2.1.2 神經(jīng)網(wǎng)絡(luò)加速器核心模塊設(shè)計(jì)

        神經(jīng)網(wǎng)絡(luò)推理加速器采用可變張量加速器(VTA)架構(gòu)[10]。

        VTA 是圍繞通用矩陣乘(GEMM)而構(gòu)建的通用深度學(xué)習(xí)加速器,可進(jìn)行高吞吐量的密集矩陣乘法操作。VTA 硬件架構(gòu)如圖2 所示,主要由獲取、加載、計(jì)算和存儲4 個(gè)模塊組成,4 個(gè)模塊通過隊(duì)列和單寫入/讀取內(nèi)存塊進(jìn)行通信。

        圖2 VTA 硬件架構(gòu)

        為支持多種神經(jīng)網(wǎng)絡(luò)的推理任務(wù),本文提出了基于宏操作的指令集。1)加載指令,將內(nèi)存中輸入和權(quán)重加載至緩存區(qū)或者片上寄存器;支持微操作指令加載至微指令緩存;支持動態(tài)填零。2)矩陣乘指令,執(zhí)行微指令緩存中微指令序列,在輸入張量和權(quán)重張量組成的矩陣之間計(jì)算矩陣乘積,并將結(jié)果暫存到片上寄存器中。3)算術(shù)邏輯指令,執(zhí)行微指令緩存中的邏輯微指令序列,對片上寄存器的數(shù)據(jù)執(zhí)行矩陣的算數(shù)邏輯操作。4)存儲指令,將計(jì)算結(jié)果從輸出緩存區(qū)存儲到內(nèi)存中。通過這4 條指令的組合,可靈活實(shí)現(xiàn)多種主流的深度神經(jīng)網(wǎng)絡(luò)推理任務(wù),實(shí)現(xiàn)智能通用運(yùn)算。

        加載模塊負(fù)責(zé)將存儲器的輸入和權(quán)重?cái)?shù)據(jù)加載到加速器內(nèi)專用輸入和權(quán)重?cái)?shù)據(jù)的緩存。加載、通用矩陣乘、算數(shù)邏輯運(yùn)算及存儲指令結(jié)構(gòu)如圖3 所示。加載模塊支持在加載數(shù)據(jù)的同時(shí),在數(shù)據(jù)周圍的X 維度和Y 維度分別動態(tài)填零。計(jì)算模塊采用通用矩陣相乘運(yùn)算,將數(shù)據(jù)從存儲器中加載到寄存器中,將微操作指令加載到微指令緩存中,計(jì)算模塊包含兩種類型的計(jì)算微指令:算數(shù)邏輯運(yùn)算和通用矩陣乘。計(jì)算模塊在兩級嵌套循環(huán)內(nèi)執(zhí)行微指令序列,以減少微內(nèi)核指令的占用空間,適用矩陣乘法和二維卷積。存儲模塊將計(jì)算模塊的輸出數(shù)據(jù)從片上內(nèi)存取出并存儲到動態(tài)存儲器中,存儲指令的譯碼執(zhí)行過程與加載模塊相似,支持從靜態(tài)存儲器到動態(tài)存儲器的跨內(nèi)存訪問。

        圖3 加載、通用矩陣乘、算數(shù)邏輯運(yùn)算及存儲指令結(jié)構(gòu)

        2.2 基于RISC-V 的SoC 架構(gòu)設(shè)計(jì)

        本文采用開源RISC-V 處理器[11]作為系統(tǒng)級芯片(SoC)中的控制單元,并提出共享內(nèi)存的設(shè)計(jì)架構(gòu),基于RISC-V CPU 的SoC 架構(gòu)如圖4 所示,整體架構(gòu)通過一致性總線(TL)進(jìn)行系統(tǒng)互聯(lián),利用TL 轉(zhuǎn)高級可擴(kuò)展接口(AXI)模塊進(jìn)行適配。RISC-V CPU 與神經(jīng)網(wǎng)絡(luò)推理加速器之間采用松耦合的互聯(lián)方式,CPU 通過總線向神經(jīng)網(wǎng)絡(luò)推理加速器的AXI 從接口發(fā)送控制指令,控制加速器開始工作,并通過輪詢方式檢測加速器是否計(jì)算完成。針對如何快速處理在深度神經(jīng)網(wǎng)絡(luò)推理過程中的數(shù)據(jù),提出共享內(nèi)存架構(gòu),設(shè)計(jì)對應(yīng)的連續(xù)內(nèi)存分配函數(shù)(CMA),以動態(tài)分配較大的連續(xù)空間物理地址。本文將32 位ARM 處理器上的CMA模塊移植到基于64 位RISC-V 的內(nèi)核上,并針對RISC-V 架構(gòu)調(diào)整虛擬地址到物理地址的映射方式,提高操作系統(tǒng)的內(nèi)存使用效率。圖4 中DDR 為雙倍數(shù)據(jù)速率。

        圖4 基于RISC-V CPU 的SoC 架構(gòu)

        2.3 SoC 與神經(jīng)網(wǎng)絡(luò)加速器的集成設(shè)計(jì)

        VTA 各模塊與RISC-V 處理器通過AXI 總線協(xié)議[12]連接,AXI 互聯(lián)模塊包含AXI InterConnect 模塊和AXI SmartConnect 模塊,可將一個(gè)或多個(gè)AXI 內(nèi)存映射的主設(shè)備連接到一個(gè)或多個(gè)內(nèi)存映射的從屬設(shè)備,更緊密地集成到硬件設(shè)計(jì)環(huán)境中,且能自動配置并適應(yīng)所連接的AXI 主模塊和從屬模塊,每一個(gè)被實(shí)例化的AXI 互聯(lián)模塊都包含一個(gè)AXI Crossbar 模塊,用于多個(gè)主接口和從接口的連接。RISC-V SoC 內(nèi)部總線互聯(lián)架構(gòu)如圖5 所示,獲取、加載、計(jì)算和存儲模塊的標(biāo)準(zhǔn)AXI 從屬接口經(jīng)過AXI InterConnect 模塊與RISC-V 處理器的主接口連接,通過AXI 總線接收CPU 的控制信號;各模塊的主接口通過AXI SmartConnect 模塊與處理器經(jīng)過AXI Crossbar 模塊對動態(tài)隨機(jī)存取存儲器(DRAM)進(jìn)行讀寫指令和數(shù)據(jù)的操作。VTA 內(nèi)部提供了傳輸指令的指令隊(duì)列、執(zhí)行同步并發(fā)任務(wù)的依賴隊(duì)列以及存儲數(shù)據(jù)的片上緩存區(qū)(包含輸入數(shù)據(jù)、權(quán)重值和輸出數(shù)據(jù))。

        圖5 RISC-V SoC 內(nèi)部總線互聯(lián)架構(gòu)

        3 基于RISC-V CPU 的神經(jīng)網(wǎng)絡(luò)加速器FPGA 實(shí)現(xiàn)

        3.1 應(yīng)用演示系統(tǒng)搭建

        SoC 設(shè)計(jì)平臺包括RISC-V SoC 生成器、編譯工具鏈和系統(tǒng)仿真工具。SoC 架構(gòu)采用共享內(nèi)存的設(shè)計(jì)架構(gòu),并通過TL 進(jìn)行系統(tǒng)互聯(lián)。CPU 配置方案為單核100 MHz 順序流水線、64 位RISC-V 架構(gòu)CPU、片上獨(dú)立的指令高速緩沖存儲器和數(shù)據(jù)高速緩沖存儲器,并配有Xilinx UltraScale DDR 控制器、安全數(shù)碼卡(SD)控制器和通用異步收發(fā)傳輸器(UART)接口。

        VTA 硬件架構(gòu)的環(huán)境搭建主要分成以下幾個(gè)階段:1)構(gòu)建加速器調(diào)用底層函數(shù)接口,用于調(diào)用VTA IP 核,配置傳輸參數(shù);2)獲取控制寄存器映射到用戶空間的虛擬地址,對加速器的控制寄存器進(jìn)行讀寫;3)獲得各種虛擬地址對應(yīng)的物理地址,傳遞給加速器的控制寄存器;4)將處理數(shù)據(jù)對應(yīng)指令長度和物理地址通過AXI 接口寫入控制寄存器;5)將加速器的控制信號通過AXI 接口寫入其控制寄存器,加速器讀取信號之后開始計(jì)算;6)CPU 通過輪詢的方式監(jiān)測加速器的工作狀態(tài),直至加速器計(jì)算結(jié)束或者用時(shí)超標(biāo);7)統(tǒng)計(jì)VTA 的計(jì)算時(shí)間,釋放內(nèi)存。

        深度神經(jīng)網(wǎng)絡(luò)編譯工具鏈?zhǔn)怯糜谏疃葘W(xué)習(xí)系統(tǒng)的編譯器堆棧,面對不同的深度學(xué)習(xí)框架和硬件平臺,實(shí)現(xiàn)了端到端的統(tǒng)一的軟件棧,能夠高效地把前端深度學(xué)習(xí)模型部署到CPU、GPU 和專用的加速器上,為了實(shí)現(xiàn)對深度神經(jīng)網(wǎng)絡(luò)的支持,本文設(shè)計(jì)了基于指令包裹的編譯框架,通過將神經(jīng)網(wǎng)絡(luò)推理運(yùn)算解耦成卷積運(yùn)算和標(biāo)量運(yùn)算,基于所設(shè)計(jì)的指令集,定義卷積運(yùn)算指令打包函數(shù),能夠自適應(yīng)地生成卷積層的指令代碼,同時(shí)用戶可以在C 開發(fā)環(huán)境下,調(diào)用打包函數(shù),進(jìn)行運(yùn)算的靈活分配。深度神經(jīng)網(wǎng)絡(luò)編譯流程如下:1)導(dǎo)入前端基于數(shù)據(jù)流圖的深度學(xué)習(xí)模型,并轉(zhuǎn)換為計(jì)算圖;2)計(jì)算圖優(yōu)化層,重構(gòu)原始計(jì)算圖,包括操作符融合和數(shù)據(jù)布局轉(zhuǎn)換;3)張量優(yōu)化層,包含張量描述、硬件源語調(diào)度優(yōu)化等;4)根據(jù)優(yōu)化目標(biāo)探索搜索空間,找到最優(yōu)解;5)生成對應(yīng)的硬件平臺代碼與部署。

        3.2 圖像分類演示

        CIFAR-10 數(shù)據(jù)集由60 000 張彩色圖像組成,其中有50 000 張訓(xùn)練圖像和10 000 張測試圖像,共有飛機(jī)、汽車、鳥、貓、鹿、狗、青蛙、馬、船、卡車10 類,每類6 000 張,用作圖像識別的數(shù)據(jù)集。

        在硬件模塊設(shè)計(jì)上,基于開源項(xiàng)目生成SoC 源碼,基于Vivado 綜合工具生成對應(yīng)的比特流,使用RISC-V 64 位編譯工具鏈生成對應(yīng)的Linux 操作系統(tǒng),并對操作系統(tǒng)以及應(yīng)用程序進(jìn)行仿真測試。在軟件模塊設(shè)計(jì)上,針對卷積運(yùn)算測試,按照VTA 硬件配置對輸入和權(quán)重進(jìn)行循環(huán)拆解、重組補(bǔ)零,同時(shí),在單個(gè)卷積層中,將大矩陣分塊進(jìn)行矩陣乘(分塊大小為64 個(gè)),編譯生成可執(zhí)行的文件并上板驗(yàn)證,卷積運(yùn)算驗(yàn)證結(jié)果如圖6 所示,實(shí)現(xiàn)了3 種不同尺寸矩陣的GEMM 計(jì)算,試驗(yàn)結(jié)果表明,本設(shè)計(jì)能保證卷積運(yùn)算的正確性。

        圖6 卷積運(yùn)算驗(yàn)證結(jié)果

        為實(shí)現(xiàn)圖像分類演示,首先,基于CIFAR-10 數(shù)據(jù)集完成了M-ZFNet 神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練、權(quán)重量化與分割,量化長度為有符號的8 位整數(shù)(INT8),并將權(quán)重和輸入數(shù)據(jù)解碼處理生成bin 文件;其次,基于深度神經(jīng)網(wǎng)絡(luò)編譯工具鏈將深度卷積神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成加速器運(yùn)行的操作指令,編譯生成可執(zhí)行文件;最后,將bin 文件和可執(zhí)行文件上板驗(yàn)證,依次完成12 張輸入圖像,輸出維度為10×1,對應(yīng)CIFAR-10 數(shù)據(jù)集中的10 個(gè)類別。同時(shí),驗(yàn)證所設(shè)計(jì)的架構(gòu)是否可靈活實(shí)現(xiàn)多種主流的深度神經(jīng)網(wǎng)絡(luò),選取ResNet20 神經(jīng)網(wǎng)絡(luò),為降低網(wǎng)絡(luò)參數(shù)量,對開源ResNet20 進(jìn)行微調(diào)(M-ResNet20),具體網(wǎng)絡(luò)結(jié)構(gòu)如下:1~7 層的卷積核大小為16@3×3,步長為1;8~13 層的卷積核大小為32@3×3,卷積層8 的步長為2,其他卷積層步長為1;14~19 層的卷積核大小為56@3×3,卷積層14 的步長為2,其他卷積層步長為1;平均池化層和全連接層均為1 層。FPGA 演示步驟同M-ZFNet。

        兩種網(wǎng)絡(luò)的圖像分類演示結(jié)果如表1 所示,輸出向量最大值所在位置對應(yīng)數(shù)據(jù)集中的類別,在本輪試驗(yàn)中,兩種網(wǎng)絡(luò)識別準(zhǔn)確率均為91.67%(在CPU 端選取的12 張測試數(shù)據(jù)集和權(quán)重均為浮點(diǎn)型,且測試準(zhǔn)確率為100%,對輸入數(shù)據(jù)和權(quán)重進(jìn)行的量化操作導(dǎo)致精度損失)。

        表1 兩種網(wǎng)絡(luò)的圖像分類演示結(jié)果

        在CIFAR10 測試集上推理,所提出的架構(gòu)總體準(zhǔn)確率預(yù)測如表2 所示。在CPU 端統(tǒng)計(jì)的M-ZFNet 和M-ResNet20 的整體準(zhǔn)確率分別為86.36%和91.73%,而在FPGA 端統(tǒng)計(jì)的準(zhǔn)確率分別為78.95%和84.81%。因?yàn)閷斎霐?shù)據(jù)和權(quán)重進(jìn)行的量化操作導(dǎo)致了精度損失,所以FPGA 端低于CPU 端的統(tǒng)計(jì)結(jié)果;因?yàn)镸-ResNet20 的網(wǎng)絡(luò)層數(shù)較多,所提取特征的抽象程度較高,所以M-ResNet20 的預(yù)測準(zhǔn)確率比M-ZFNet 高。試驗(yàn)結(jié)果表明,所設(shè)計(jì)的架構(gòu)可實(shí)現(xiàn)主流的深度神經(jīng)網(wǎng)絡(luò)推理任務(wù),實(shí)現(xiàn)智能通用運(yùn)算。

        表2 兩種網(wǎng)絡(luò)總體準(zhǔn)確率預(yù)測

        4 結(jié)論

        本文探索了基于RISC-V 處理器的神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)與FPGA 實(shí)現(xiàn),所設(shè)計(jì)的架構(gòu)可靈活實(shí)現(xiàn)多種主流的深度神經(jīng)網(wǎng)絡(luò)推理任務(wù),MAC 數(shù)目可達(dá)到1 024,量化長度為INT8,編譯棧支持主流卷積神經(jīng)網(wǎng)絡(luò)的編譯,最終完成卷積運(yùn)算、ZFNet 和ResNet20 神經(jīng)網(wǎng)絡(luò)算法的部署,并完成CIFAR-10 圖像分類演示,試驗(yàn)選取了12 張測試集,準(zhǔn)確率均達(dá)到91.67%,且在FPGA端M-ZFNet 整體準(zhǔn)確率達(dá)78.95%,M-ResNet20 整體準(zhǔn)確率達(dá)84.81%。為了支持多種不同的神經(jīng)網(wǎng)絡(luò)推理任務(wù),創(chuàng)新地提出了由4 條指令組成的基于宏操作的指令集,依據(jù)指令類型的不同可以分別完成數(shù)據(jù)加載、計(jì)算和結(jié)果存儲等操作,利用這4 條指令的組合,可實(shí)現(xiàn)智能通用運(yùn)算。

        所設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)推理加速器在精度損失和加速性能方面還有一些方面可以進(jìn)一步改進(jìn):1)由于目前的量化方案精度損失較大,后續(xù)工作可考慮將量化和訓(xùn)練相結(jié)合,在量化后通過微調(diào)訓(xùn)練來彌補(bǔ)量化的精度損失;2)未對神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)的數(shù)據(jù)吞吐量、計(jì)算速度、功耗、資源消耗等方面進(jìn)行研究,后續(xù)將主要研究神經(jīng)網(wǎng)絡(luò)加速器的加速效果。

        猜你喜歡
        加速器指令架構(gòu)
        輪滑加速器
        化學(xué)工業(yè)的“加速器”
        聽我指令:大催眠術(shù)
        基于FPGA的RNN硬件加速架構(gòu)
        全民小康路上的“加速器”
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        等待“加速器”
        爱爱免费视频一区二区三区| 女人被爽到呻吟gif动态图视看| 无码国产精品一区二区免费模式 | 日本免费一区二区三区影院| 狠狠躁日日躁夜夜躁2022麻豆| 日日碰狠狠添天天爽无码| 88国产精品视频一区二区三区| 久久精品国产91久久性色tv | 亚洲传媒av一区二区三区| 一本一道久久综合久久| 日本最新免费二区| 国产精品久久久久久52avav| 97se亚洲国产综合自在线图片| 在线视频青青草猎艳自拍69| 色青青女同性恋视频日本熟女| 成人av资源在线观看| 久久无码字幕中文久久无码| 伊人久久精品久久亚洲一区 | 天天躁日日躁狠狠很躁| 手机看片福利盒子久久青| 亚洲成a人片在线观看高清| 亚洲精品一区二区网站| 999zyz玖玖资源站永久| 中文字幕av免费专区| 粗了大了 整进去好爽视频| 色窝窝无码一区二区三区2022 | 久久99亚洲精品久久久久| 中文人妻熟妇乱又伦精品| 亚洲狠狠网站色噜噜| 日本高清一区二区在线观看| 男女男精品视频网站免费看| 无码人妻少妇久久中文字幕蜜桃| 青青草国产成人99久久| a欧美一级爱看视频| 极品少妇一区二区三区四区| 久久伊人最新网址视频| 亚洲av无码精品色午夜| 最新无码国产在线播放| 亚洲人妻av综合久久| 亚洲中文字幕精品乱码2021| 亚洲av永久无码国产精品久久|