0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

riscv的fpga實(shí)現(xiàn)案例 基于RISC-V加速器實(shí)現(xiàn)現(xiàn)場(chǎng)可編程門(mén)陣列 CNN異構(gòu)的控制方案

FPGA設(shè)計(jì)論壇 ? 來(lái)源:吳海龍, 李金東, 陳翔, ? 作者:吳海龍, 李金東, ? 2023-08-21 10:30 ? 次閱讀

作者:吳海龍, 李金東, 陳翔,電子信息工程學(xué)院,中山大學(xué),中國(guó) (在此特別鳴謝!)

摘要:現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)具有低功耗、高性能和靈活性的特點(diǎn)。FPGA神經(jīng)網(wǎng)絡(luò)加速的研究正在興起,但大多數(shù)研究都基于國(guó)外的FPGA器件。為了改善國(guó)內(nèi)FPGA的現(xiàn)狀,提出了一種新型的卷積神經(jīng)網(wǎng)絡(luò)加速器,用于配備輕量級(jí)RISC-V軟核的國(guó)產(chǎn)FPGA(紫光同創(chuàng)PG2L100H)。所提出的加速器的峰值性能達(dá)到153.6 GOP/s,僅占用14K LUT(查找表)、32個(gè)DRM(專用RAM模塊)和208個(gè)APM(算術(shù)處理模塊)。所提出的加速器對(duì)于大多數(shù)邊緣AI應(yīng)用和嵌入式系統(tǒng)具有足夠的計(jì)算能力,為國(guó)內(nèi)FPGA提供了可能的AI推理加速方案。

背景

卷積神經(jīng)網(wǎng)絡(luò)在機(jī)器視覺(jué)任務(wù)中越來(lái)越流行,包括圖像分類(lèi)和目標(biāo)檢測(cè)。如何在有限的條件下充分發(fā)揮FPGA的最大性能是各研究者的主要方向。如今,大多數(shù)CCN使用外國(guó)FPGA器件。由于國(guó)內(nèi)FPGA起步較晚,其相關(guān)開(kāi)發(fā)工具和設(shè)備落后于其他外國(guó)制造商。因此,在國(guó)內(nèi)FPGA上構(gòu)建高性能CNN并替換現(xiàn)有成熟的異構(gòu)方案是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。 Zhang[1]于2015年首次對(duì)卷積網(wǎng)絡(luò)推理中的數(shù)據(jù)共享和并行性進(jìn)行了深入分析和探索。Guo[2]提出的加速器在214MHz下達(dá)到了84.3 GOP/s的峰值性能。2016年,Qiu[3]更深入地探索了使用行緩沖器的加速器。

本文提出了一種更高效、更通用的卷積加速器。提出的加速器峰值性能達(dá)到153.6GOP/s,僅占用14K LUT、32個(gè)DRM和208個(gè)APM。本文的章節(jié)安排如下,第2節(jié)介紹了我們提出的加速器的詳細(xì)設(shè)計(jì)以及基于RISC-V的加速器實(shí)現(xiàn)的控制調(diào)度方案。第3節(jié)給出了實(shí)驗(yàn)結(jié)果。

系統(tǒng)設(shè)計(jì)

整個(gè)RISC-V片上系統(tǒng)設(shè)計(jì)如圖1所示。該系統(tǒng)主要由RISC-V軟核CPU、指令/數(shù)據(jù)存儲(chǔ)器、總線橋、外圍設(shè)備、DMA(直接存儲(chǔ)器訪問(wèn))和卷積加速器組成。

ed96918c-3fc9-11ee-ac96-dac502259ad0.png


Fig. 1. 片上RISC-V系統(tǒng)設(shè)計(jì)圖

我們的工作主要在三個(gè)方面。首先,我們使用軟核CPU作為片上系統(tǒng)的主控,控制外設(shè),DMA,CNN加速器來(lái)實(shí)現(xiàn)數(shù)據(jù)調(diào)度和操作。其次,1D(一維)加速器被設(shè)計(jì)用于改變緩沖機(jī)制。第三,為紫光同創(chuàng)的FPGA設(shè)備設(shè)計(jì)了一個(gè)DMA IP,用于卷積加速的應(yīng)用。

A、RISC-V 軟核CPU 架構(gòu)

軟核。使用RISC-V軟核VexRiscv代替Ibex[4]構(gòu)建RISC-V的片上系統(tǒng)和面向軟件的方法可以使VexRiscv具有高度的靈活性和可擴(kuò)展性。

接口I2C和SPI等外圍設(shè)備通過(guò)APB3總線連接到RISC-V軟核。DMA和加速器通過(guò)PMB總線連接到RISC-V軟核。

指令與數(shù)據(jù)存儲(chǔ)。程序被交叉編譯以獲得一個(gè)特定的文件,該文件由JTAG燒錄到片上指令/數(shù)據(jù)存儲(chǔ)器中。

B、CNN 加速器結(jié)構(gòu)

輸入緩存。使用乒乓緩存來(lái)實(shí)現(xiàn)緩沖區(qū),可以有效地提高吞吐量。

輸出緩存。權(quán)重緩存模塊由一系列分布式RAM和串行到并行單元組成。

卷積。圖2中的1D卷積模塊分為四組,其中包含四個(gè)1D卷曲單元。每個(gè)單元負(fù)責(zé)1D卷積的一個(gè)信道。

合并。積分模塊有四組加法器樹(shù)。每組加法器樹(shù)將每組卷積運(yùn)算單元的結(jié)果相加,得到單向輸出結(jié)果。

累加。累加模塊中有四組FIFO和四個(gè)加法器。加速器一次只能接收四個(gè)通道的輸入特征圖數(shù)據(jù)。

量化。該量化模塊由乘法單元和移位單元組成。它通過(guò)比例變換將24位累加結(jié)果重新轉(zhuǎn)換為8位[5]。

激活。激活功能通過(guò)查找由一系列分布式RAM組成的表來(lái)實(shí)現(xiàn)。它存儲(chǔ)ReLu、Leaky ReLu和sigmoid函數(shù)的INT8函數(shù)表。

池化。確定當(dāng)前卷積層是否與池化層級(jí)聯(lián),然后決定是否使用池化模塊來(lái)完成池化操作。

輸出緩存。輸出緩沖器由FIFO而不是乒乓緩存實(shí)現(xiàn)。輸出高速緩存FIFO將結(jié)果存儲(chǔ)回片外存儲(chǔ)器,作為下一卷積層的輸入。

edbad7d6-3fc9-11ee-ac96-dac502259ad0.png


Fig. 2.CNN 加速器實(shí)現(xiàn)

C、DMA 結(jié)構(gòu)

神經(jīng)網(wǎng)絡(luò)不僅對(duì)計(jì)算能力有很高的要求,而且對(duì)內(nèi)存也有很大的需求。中低端FPGA通常需要DDR SRAM(雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)來(lái)承載整個(gè)神經(jīng)網(wǎng)絡(luò)和所有中間運(yùn)算結(jié)果的權(quán)重。紫光同創(chuàng)的FPGA的DDR3內(nèi)存驅(qū)動(dòng)器IP為用戶提供了簡(jiǎn)化AXI4總線的內(nèi)存訪問(wèn)接口。 由于Simpled AXI和AXI之間的標(biāo)準(zhǔn)差異,需要新的DMA設(shè)計(jì)。DMA設(shè)計(jì)如下。讀和寫(xiě)地址通道由RISC-V軟核直接控制。讀寫(xiě)數(shù)據(jù)通道的FIFO用作卷積加速器和DDR3驅(qū)動(dòng)器IP的緩沖器,以完成端口轉(zhuǎn)換。

D、實(shí)現(xiàn)細(xì)節(jié)

1、一維卷積單元陣列設(shè)計(jì) 神經(jīng)網(wǎng)絡(luò)不僅對(duì)計(jì)算能力有很高的要求,而且對(duì)內(nèi)存也有很大的需求。中低端FPGA通常需要DDR SRAM(雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)來(lái)承載整個(gè)神經(jīng)網(wǎng)絡(luò)和所有中間運(yùn)算結(jié)果的權(quán)重。紫光同創(chuàng)的FPGA的DDR3內(nèi)存驅(qū)動(dòng)器IP為用戶提供了簡(jiǎn)化AXI4總線的內(nèi)存訪問(wèn)接口。 由于Simpled AXI和AXI之間的標(biāo)準(zhǔn)差異,需要新的DMA設(shè)計(jì)。DMA設(shè)計(jì)如下。讀和寫(xiě)地址通道由RISC-V軟核直接控制。讀寫(xiě)數(shù)據(jù)通道的FIFO用作卷積加速器和DDR3驅(qū)動(dòng)器IP的緩沖器,以完成端口轉(zhuǎn)換。

2、卷積加速器控制

本文提出了一種基于指令隊(duì)列的設(shè)計(jì),以減少RISC-V軟核中DMA和加速器的響應(yīng)延遲。RISC-V CPU可以連續(xù)發(fā)送多個(gè)存儲(chǔ)器讀寫(xiě)請(qǐng)求指令和多個(gè)操作調(diào)度控制指令,而不用等待DMA和加速器的反饋。DMA和加速器從隊(duì)列中獲取指令,任務(wù)完成后直接從隊(duì)列中取出下一條指令,無(wú)需等待相應(yīng)的CPU,從而實(shí)現(xiàn)低延遲調(diào)度。

eddebd36-3fc9-11ee-ac96-dac502259ad0.png


Fig. 3. 1X3 一維卷積原理圖

ee01c178-3fc9-11ee-ac96-dac502259ad0.png


Fig. 4. 一維卷積單元硬件實(shí)現(xiàn)

實(shí)現(xiàn)結(jié)果和備注

通過(guò)在PG2L100H和X7Z020上實(shí)現(xiàn)相同配置的CNN加速器,完成了CNN加速器的性能測(cè)試,驗(yàn)證了國(guó)產(chǎn)FPGA CNN加速方案的可行性。加速器的資源消耗和性能如表I和表II所示。

ee0df268-3fc9-11ee-ac96-dac502259ad0.png

TABLE I 資源利用 PG2L100H和X7Z020的資源消耗相似。PG2L100H需要額外的邏輯資源來(lái)構(gòu)建VexRiscv CPU,而X7Z020為AXI DMA IP使用更多的邏輯資源。就加速器性能而言,可從表II中看出。由于FPGA器件架構(gòu)的差異,與X7Z020相比,加速器的卷積運(yùn)算在PG2L100H上只能在200MHz下實(shí)現(xiàn)更好的收斂。RISC-V軟核只能在100MHz下實(shí)現(xiàn)定時(shí)收斂。

ee1ffbd4-3fc9-11ee-ac96-dac502259ad0.png

TABLE II 性能對(duì)比 我們提出了一種基于RISC-V的一維卷積運(yùn)算的新設(shè)計(jì)。該加速器在國(guó)內(nèi)FPGA上的實(shí)現(xiàn)和部署已經(jīng)完成,其性能與具有相同規(guī)模硬件資源的國(guó)外FPGA相當(dāng)。

本文論證了基于國(guó)產(chǎn)FPGA的CNN異構(gòu)方案的可行性,該研究是國(guó)產(chǎn)FPGA應(yīng)用生態(tài)中CNN加速領(lǐng)域的一次罕見(jiàn)嘗試。

作者:吳海龍, 李金東, 陳翔,電子與信息工程學(xué)院,中山大學(xué),中國(guó) (在此特別鳴謝?。?/span>

REFERENCES:

[1]Zhang. C, et al. "Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks. " the 2015 ACM/SIGDA International Symposium ACM, 2015.

[2]K. Guo et al., "Angel-Eye: A Complete Design Flow for Mapping CNN Onto Embedded FPGA," in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 37, no. 1, pp. 35-47, Jan. 2018.

[3]Qiu.J, et al. "Going Deeper with Embedded FPGA Platform for Convolutional Neural Network." the 2016 ACM/SIGDA International Symposium ACM, 2016.

[4]E. Gholizadehazari, T. Ayhan and B. Ors, "An FPGA Implementation of a RISC-V Based SoC System for Image Processing Applications," 2021 29th Signal Processing and Communications Applications Conference (SIU), 2021, pp. 1-4.

[5]B. Jacob et al., "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference," 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2018, pp. 2704-2713.

[6]B. Bosi, G. Bois and Y. Savaria, "Reconfigurable pipelined 2-D convolvers for fast digital signal processing," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 7, no. 3, pp. 299-308, Sept. 1999.

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21777

    瀏覽量

    604709
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    804

    瀏覽量

    37976
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4777

    瀏覽量

    100960
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    353

    瀏覽量

    22267
  • RISC-V
    +關(guān)注

    關(guān)注

    45

    文章

    2307

    瀏覽量

    46300
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RISC-V能否復(fù)制Linux 的成功?》

    ,創(chuàng)建實(shí)現(xiàn)自有加速器算法的自定義異構(gòu)集群。RISC-V作為一種ISA,我們一開(kāi)始是在處理內(nèi)核中采用吸引人的通用構(gòu)建塊,然后在此基礎(chǔ)上進(jìn)行構(gòu)
    發(fā)表于 11-26 20:20

    RISC-V,即將進(jìn)入應(yīng)用的爆發(fā)期

    計(jì)算機(jī)由控制整體的CPU(中央處理)和加速器兩部分構(gòu)成。在AI計(jì)算中,功耗和效率是兩個(gè)關(guān)鍵因素。RISC-V架構(gòu)通過(guò)其簡(jiǎn)潔的設(shè)計(jì)和定制化的擴(kuò)展,可以
    發(fā)表于 10-31 16:06

    淺談國(guó)產(chǎn)異構(gòu)雙核RISC-V+FPGA處理AG32VF407的優(yōu)勢(shì)和應(yīng)用場(chǎng)景

    關(guān)于國(guó)產(chǎn)異構(gòu)雙核RISC-V+FPGA處理AG32VF407的具體優(yōu)勢(shì)和應(yīng)用場(chǎng)景淺談如下: 優(yōu)勢(shì) 異構(gòu)計(jì)算能力 : 異構(gòu)雙核設(shè)計(jì)結(jié)合了
    發(fā)表于 08-31 08:32

    2024 RISC-V 中國(guó)峰會(huì):華秋電子助力RISC-V生態(tài)!

    掌握RISC-V芯片的應(yīng)用與開(kāi)發(fā),電子發(fā)燒友作為緊密合作伙伴,依托650萬(wàn)+開(kāi)發(fā)者用戶,全力構(gòu)建包含RISC-V開(kāi)發(fā)者社區(qū)、RISC-V技術(shù)商業(yè)生態(tài)圈及RISC-V創(chuàng)新
    發(fā)表于 08-26 16:46

    為什么要有RISC-V

    編程語(yǔ)言。③、它應(yīng)該適應(yīng)所有實(shí)現(xiàn)技術(shù),包括現(xiàn)場(chǎng)可編程門(mén)陣列FPGA)、專用集成電路(ASIC
    發(fā)表于 07-27 15:05

    什么是現(xiàn)場(chǎng)可編程邏輯陣列?它有哪些特點(diǎn)和應(yīng)用?

    可編程邏輯元件和可編程互連,實(shí)現(xiàn)邏輯電路的設(shè)計(jì)和配置。FPLA在電子系統(tǒng)設(shè)計(jì)、數(shù)字信號(hào)處理、網(wǎng)絡(luò)通信等多個(gè)領(lǐng)域都有廣泛應(yīng)用。本文將對(duì)現(xiàn)場(chǎng)可編程邏輯陣
    的頭像 發(fā)表于 05-23 16:25 ?1046次閱讀

    Achronix FPGA增加對(duì)Bluespec提供的基于Linux的RISC-V軟處理的支持,以實(shí)現(xiàn)可擴(kuò)展數(shù)據(jù)處理

    Bluespec支持加速器功能的RISC-V處理將Achronix的FPGA轉(zhuǎn)化為可編程SoC 近日,高性能
    的頭像 發(fā)表于 04-19 18:08 ?722次閱讀

    現(xiàn)場(chǎng)可編程門(mén)陣列的基本結(jié)構(gòu)和優(yōu)缺點(diǎn)

    現(xiàn)場(chǎng)可編程門(mén)陣列FPGA)的基本結(jié)構(gòu)主要包括可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊
    的頭像 發(fā)表于 03-27 14:49 ?666次閱讀

    現(xiàn)場(chǎng)可編程門(mén)陣列的原理和應(yīng)用

    FPGA是一種可編程的硬件邏輯器件,其核心組成部分是可編程邏輯單元(PLU)和可編程互連資源(Interconnect Resources)。PLU是一組
    的頭像 發(fā)表于 03-27 14:49 ?781次閱讀

    現(xiàn)場(chǎng)可編程門(mén)陣列簡(jiǎn)介

    現(xiàn)場(chǎng)可編程門(mén)陣列FPGA)是一種由半導(dǎo)體材料制成的集成電路,用戶購(gòu)買(mǎi)后可以重新編程或配置,以滿足特定功能或應(yīng)用需求。其
    的頭像 發(fā)表于 03-27 14:48 ?594次閱讀

    fpga開(kāi)發(fā)需要掌握哪些編程語(yǔ)言

    FPGA現(xiàn)場(chǎng)可編程門(mén)陣列)開(kāi)發(fā)涉及多種編程語(yǔ)言和技術(shù).
    的頭像 發(fā)表于 03-27 14:34 ?1564次閱讀

    fpgarisc-v處理的區(qū)別

    FPGA現(xiàn)場(chǎng)可編程門(mén)陣列)和RISC-V處理在多個(gè)方面存在顯著的區(qū)別。
    的頭像 發(fā)表于 03-27 14:21 ?1204次閱讀

    fpga實(shí)現(xiàn)什么功能

    FPGA現(xiàn)場(chǎng)可編程門(mén)陣列)是一種可編程邏輯芯片,其主要作用和功能體現(xiàn)在多個(gè)方面。
    的頭像 發(fā)表于 03-27 14:11 ?1455次閱讀

    現(xiàn)場(chǎng)可編程門(mén)陣列設(shè)計(jì)流程

    現(xiàn)場(chǎng)可編程門(mén)陣列FPGA)設(shè)計(jì)流程是一個(gè)綜合性的過(guò)程,它涵蓋了從需求分析到最終實(shí)現(xiàn)的各個(gè)環(huán)節(jié)。下面將詳細(xì)介紹
    的頭像 發(fā)表于 03-16 16:38 ?1982次閱讀

    現(xiàn)場(chǎng)可編程門(mén)陣列是什么

    現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,簡(jiǎn)稱FPGA)是一種超大規(guī)模可編程邏輯器件,由
    的頭像 發(fā)表于 03-16 16:38 ?2521次閱讀