基于FPGA的多卷積神經網絡任務實時切換方法
發(fā)布時間:2020-12-23 17:58
使用硬件平臺實現卷積神經網絡的計算可以獲得良好的加速效果和功耗,但由于卷積神經網絡模型龐大、計算復雜、硬件平臺資源有限,在實際應用中多個卷積神經網絡任務之間只能串行計算,這導致系統(tǒng)在處理多個任務時的實時性較差.為提升硬件系統(tǒng)的實時性,提出一種多卷積神經網絡任務實時切換方法 .基于FPGA(Field Programmable Gate Array)平臺進行卷積神經網絡部署,根據功能劃分系統(tǒng)模塊.采用"任務序列+控制模塊"的設計結構,控制系統(tǒng)根據卷積神經網絡任務的優(yōu)先級進行計算和切換;在計算模塊中,復用可配置的卷積單元減少資源開銷;提出一種多任務層級切換機制以提升系統(tǒng)的實時性.利用手寫數字識別網絡進行驗證,實驗結果表明:可配置的設計減少了除BRAM(Block Random Access Memory)外50%以上的資源開銷;在50 MHz的工作頻率下,FPGA的識別速度是CPU(Central Processing Unit)的4. 51倍,功耗比為CPU的2. 84倍;采用實時切換機制最快可使最高優(yōu)先級任務提前57. 26 ms被響應,提升了串行計算系統(tǒng)的實時性.
【文章來源】:南京大學學報(自然科學). 2020年02期 北大核心
【文章頁數】:8 頁
【部分圖文】:
手寫數字識別網絡結構
根據研究的內容和卷積神經網絡的計算特點,本文設計的總體架構如圖2所示,共包含CPU、任務序列、控制模塊、計算模塊、片上存儲[16]以及片外存儲六個模塊,其中APB(Advanced Peripheral Bus)與AXI(Advanced eXtensible Interface)為總線協(xié)議.由于FPGA的存儲空間有限,卷積神經網絡的權值參數和隱藏層的計算結果均存放在片外存儲DDR(Double Data Rate)中.當有任務請求時,CPU會將待識別的圖像任務存儲到片外存儲DDR中,并在任務序列中添加一個任務;控制模塊在檢測到任務序列中有待執(zhí)行的任務后,開始配置計算模塊,并從片外存儲中讀取輸入圖像,進行卷積神經網絡的推理,計算和數據讀寫操作由控制模塊發(fā)起和控制.通常在設計中CPU會參與卷積神經網絡計算的整個過程,包括計算數據的讀取與存儲、計算控制等,是控制的核心.而在本文設計中的CPU僅用于輸入圖像的存儲和任務序列的配置,其余工作由硬件實現的控制模塊完成.在卷積神經網絡的推理計算過程中,硬件控制的引入使得CPU可以處于空閑狀態(tài)或者執(zhí)行其他操作.
任務序列用來存儲待計算的卷積神經網絡任務的相關信息.每個卷積神經網絡任務在任務序列中都對應一組寄存器,如圖3所示,主要存儲卷積神經網絡任務的優(yōu)先級、配置計算模塊所需的網絡參數、輸入存儲地址和輸出存儲地址等信息.其中任務優(yōu)先級是系統(tǒng)進行任務切換的判斷依據,網絡結構信息包含了輸入特征圖通道數、輸入特征圖尺寸、卷積核或采樣核數量、卷積核或采樣核尺寸、步長等內容.控制模塊主要負責配置計算模塊、片外存儲的讀寫、各模塊間的狀態(tài)交互以及任務間的切換.系統(tǒng)遵循高優(yōu)先級任務先計算的原則,在計算過程中控制模塊會檢查任務序列中其他待計算任務的優(yōu)先級,若優(yōu)先級高于當前計算的任務,則保存當前任務的計算結果,切換計算優(yōu)先級更高的任務.圖4為任務切換流程圖,當計算任務發(fā)生切換時,控制模塊需根據任務序列中的任務信息重新配置計算模塊.
【參考文獻】:
期刊論文
[1]深度學習FPGA加速器的進展與趨勢[J]. 吳艷霞,梁楷,劉穎,崔慧敏. 計算機學報. 2019(11)
[2]一種基于FPGA的卷積神經網絡加速器的設計與實現[J]. 張榜,來金梅. 復旦學報(自然科學版). 2018(02)
本文編號:2934113
【文章來源】:南京大學學報(自然科學). 2020年02期 北大核心
【文章頁數】:8 頁
【部分圖文】:
手寫數字識別網絡結構
根據研究的內容和卷積神經網絡的計算特點,本文設計的總體架構如圖2所示,共包含CPU、任務序列、控制模塊、計算模塊、片上存儲[16]以及片外存儲六個模塊,其中APB(Advanced Peripheral Bus)與AXI(Advanced eXtensible Interface)為總線協(xié)議.由于FPGA的存儲空間有限,卷積神經網絡的權值參數和隱藏層的計算結果均存放在片外存儲DDR(Double Data Rate)中.當有任務請求時,CPU會將待識別的圖像任務存儲到片外存儲DDR中,并在任務序列中添加一個任務;控制模塊在檢測到任務序列中有待執(zhí)行的任務后,開始配置計算模塊,并從片外存儲中讀取輸入圖像,進行卷積神經網絡的推理,計算和數據讀寫操作由控制模塊發(fā)起和控制.通常在設計中CPU會參與卷積神經網絡計算的整個過程,包括計算數據的讀取與存儲、計算控制等,是控制的核心.而在本文設計中的CPU僅用于輸入圖像的存儲和任務序列的配置,其余工作由硬件實現的控制模塊完成.在卷積神經網絡的推理計算過程中,硬件控制的引入使得CPU可以處于空閑狀態(tài)或者執(zhí)行其他操作.
任務序列用來存儲待計算的卷積神經網絡任務的相關信息.每個卷積神經網絡任務在任務序列中都對應一組寄存器,如圖3所示,主要存儲卷積神經網絡任務的優(yōu)先級、配置計算模塊所需的網絡參數、輸入存儲地址和輸出存儲地址等信息.其中任務優(yōu)先級是系統(tǒng)進行任務切換的判斷依據,網絡結構信息包含了輸入特征圖通道數、輸入特征圖尺寸、卷積核或采樣核數量、卷積核或采樣核尺寸、步長等內容.控制模塊主要負責配置計算模塊、片外存儲的讀寫、各模塊間的狀態(tài)交互以及任務間的切換.系統(tǒng)遵循高優(yōu)先級任務先計算的原則,在計算過程中控制模塊會檢查任務序列中其他待計算任務的優(yōu)先級,若優(yōu)先級高于當前計算的任務,則保存當前任務的計算結果,切換計算優(yōu)先級更高的任務.圖4為任務切換流程圖,當計算任務發(fā)生切換時,控制模塊需根據任務序列中的任務信息重新配置計算模塊.
【參考文獻】:
期刊論文
[1]深度學習FPGA加速器的進展與趨勢[J]. 吳艷霞,梁楷,劉穎,崔慧敏. 計算機學報. 2019(11)
[2]一種基于FPGA的卷積神經網絡加速器的設計與實現[J]. 張榜,來金梅. 復旦學報(自然科學版). 2018(02)
本文編號:2934113
本文鏈接:http://sikaile.net/kejilunwen/dianzigongchenglunwen/2934113.html