基于FPGA的RNN加速SoC設(shè)計與實現(xiàn)
發(fā)布時間:2024-11-03 13:37
為提高循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)推理速度,分析了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在CPU的運行時間瓶頸、輸入向量稀疏性和參數(shù)規(guī)模.設(shè)計RNN加速器核實現(xiàn)矩陣-稀疏向量乘并行計算,并同時將多個輸入向量完整存儲于片上SRAM,以復(fù)用部分權(quán)重從而降低DDR帶寬需求.通過Verilog HDL對RNN加速器核進行RTL描述,并搭建仿真環(huán)境,將語音識別算法DeepSpeech2的網(wǎng)絡(luò)參數(shù)輸入RNN加速器核進行功能仿真.基于FPGA,將MicroBlaze處理器與RNN加速器核搭建SoC,由MicroBlaze實現(xiàn)激活函數(shù)、向量逐元素相乘等其它計算.實現(xiàn)了DeepSpeech2中RNN部分推理計算,與只使用MicroBlaze處理器相比,速度提高23倍,能量消耗降低9.4倍.
【文章頁數(shù)】:6 頁
【部分圖文】:
本文編號:4011357
【文章頁數(shù)】:6 頁
【部分圖文】:
如圖1所示,循環(huán)神經(jīng)網(wǎng)絡(luò)加速SoC包含MicroBlaze主處理器,RNN加速器核,DMA,DDR控制器,UART核PCIEDMA等部分.PC端通過PCIE接口將神經(jīng)網(wǎng)絡(luò)參數(shù)核輸入傳輸至DDR中;MicroBlaze控制RNN加速器核的工作狀態(tài),完成激活函數(shù)與向量逐點相乘等計算....
為了使每一個周期均有非零值進入MAC陣列計算,實現(xiàn)計算資源的最大利用,向量讀取和索引產(chǎn)生模塊每一個周期讀取16個元素并輸入0值刪除模塊,并盡可能每一個周期產(chǎn)生一個非零值.如圖2所示,當(dāng)?shù)谝患塅IFO未滿時,向量讀取模塊產(chǎn)生使能信號,讀取16個數(shù),并產(chǎn)生索引進入第一級FIFO.第一....
3.5MAC陣列一個MAC單元用于計算矩陣中的一行與向量點積的結(jié)果.如圖3所示,一個MAC單元是一個三級流水線結(jié)構(gòu):第一級中向量的非零值打一拍,同時根據(jù)非零值的索引值取出對應(yīng)位置的權(quán)重值,還會同時從偏置SRAM和輸出SRAM分別取出偏置值和臨時的累加結(jié)果;第二級向量非零值和權(quán)重....
本文編號:4011357
本文鏈接:http://www.lk138.cn/kejilunwen/dianzigongchenglunwen/4011357.html
最近更新
教材專著