<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用OpenCL實現FPGA上的大型卷積網絡加速?

FPGA之家 ? 來源:CSDN ? 作者:祥瑞Coding ? 2021-04-19 11:12 ? 次閱讀

Xilinx zynq系列FPGA實現神經網絡評估

本篇目錄

1. 內存占用

1.1 FPGA程序中內存的實現方式

1.2 Zynq的BRAM內存大小

1.3 一個卷積操作占用的內存

2. PipeCNN可實現性

PipeCNN論文解析:用OpenCL實現FPGA上的大型卷積網絡加速

2.1 已實現的PipeCNN資源消耗

3. 實現大型神經網絡的方法

4. Virtex-7高端FPGA概覽、7系列FPGA相關文檔

正文

0Zynq7000系列概覽

3fd119b4-9ff3-11eb-8b86-12bb97331649.png

1內存占用

1.1 FPGA程序中內存的實現方式

參閱xilinx文檔UG998

3fe9ac4a-9ff3-11eb-8b86-12bb97331649.png

FPGA并沒有像軟件那樣用已有的cache,FPGA的HLS編譯器會在FPGA中創建一個快速的memory architecture以最好的適應算法中的數據樣式(data layout)。因此FPGA可以有相互獨立的不同大小的內部存儲空間,例如寄存器,移位寄存器,FIFOs和BRAMs。

寄存器:最快的內存結構,集成在在運算單元之中,獲取不需要額外的時延。

移位寄存器:可以被當作一個數據序列,每一個數據可以在不同的運算之中被重復使用。將其中所有數據移動到相鄰的存儲設備中只需要一個時鐘周期。

FIFO:只有一個輸入和輸出的數據序列,通常被用于循環或循環函數,細節會被HLS編譯器處理。

BRAM:集成在FPGA fabric模塊中的RAM,每個xilinx的FPGA中集成有多個這樣的BRAM??梢员划斪饔幸韵绿匦缘腸ache:1.不支持像處理器cache中那樣的緩存一致性(cache coherency,collision),不支持處理器中的一些邏輯類型。2.只在設備有電時保持內存。3.不同的BRAM塊可以同時傳輸數據。

1.2 Zynq的BRAM內存大小

401c62b6-9ff3-11eb-8b86-12bb97331649.png

zynq 7z020的BRAM為4.9Mb,7z035的BRAM為17.6Mb(2.2MB)

4056ec9c-9ff3-11eb-8b86-12bb97331649.png

1.3 一個卷積操作占用的內存

例如,我們實現的卷積函數,輸入27×600,卷積核16×27,輸出16×600,數據類型為float。

//convolution operation for (i = 0; i 《 16; i++) { for (j = 0; j 《 600; j++) { result = 0; for (k = 0; k 《 27; k++) { temp = weights[i*27+k] * buf_in[k*600+j]; result += temp; } buf_out[i*600+j] = result; } }

在HLS中生成的IPcore占用硬件資源為:

40a24fb6-9ff3-11eb-8b86-12bb97331649.png

40c04278-9ff3-11eb-8b86-12bb97331649.png

40ca8fa8-9ff3-11eb-8b86-12bb97331649.png

在vivado中搭建好系統,占用的資源為:

40de955c-9ff3-11eb-8b86-12bb97331649.png

4119ebde-9ff3-11eb-8b86-12bb97331649.png

2PipeCNN可實現性

PipeCNN是一個基于OpenCL的FPGA實現大型卷積網絡的加速器。

PipeCNN解析文檔:

PipeCNN論文解析:用OpenCL實現FPGA上的大型卷積網絡加速

github地址:https://github.com/doonny/PipeCNN#how-to-use

2.1 已實現的PipeCNN資源消耗

對于Altera FPGA,運用 Intel‘s OpenCL SDK v16.1 toolset.

對于Xilinx FPGAs, the SDAccel development environment v2017.2 can be used.

413a8bc8-9ff3-11eb-8b86-12bb97331649.png

Xilinx’s KCU1500 (XCKU115 FPGA)(已經有xilin的板子實現過pipeCNN,但是型號比zynq高很多)

硬件資源可以被三個宏調控,device/hw_param.cl. Change the following macros

VEC_SIZE

LANE_NUM

CONV_GP_SIZE_X

消耗資源為:

417dad0e-9ff3-11eb-8b86-12bb97331649.png

419045e0-9ff3-11eb-8b86-12bb97331649.png

3實現大型神經網絡的方法

方案一:壓縮模型到《2.2MB,可實現在BRAM中

優點:1.速度快 2.實現方便

缺點:1.模型壓縮難度 2.難以實現大型網絡

方案二:用FPGA調用DDR

優點:1.速度中等 2.可實現大型網絡

缺點:調用DDR有難度,開發周期長

方案三:用片上單片機調用DDR(插入SD卡)分包傳入IPcore運算

優點:可實現大型網絡

缺點:速度較慢

4Virtex-7高端FPGA概覽

Virtex-7為高端FPGA,比Zynq高了一個檔次。

41b0185c-9ff3-11eb-8b86-12bb97331649.png

7系列FPGA相關文檔:

41d92422-9ff3-11eb-8b86-12bb97331649.png

原文標題:Xilinx Zynq系列FPGA實現神經網絡中相關資源評估

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1608

    文章

    21367

    瀏覽量

    594667
  • 神經網絡
    +關注

    關注

    42

    文章

    4591

    瀏覽量

    99293

原文標題:Xilinx Zynq系列FPGA實現神經網絡中相關資源評估

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于FPGA網絡加速設計實現

    首先是FPGA硬件的變化太多,各個模塊可配參數的變化(比如卷積模塊并行數的變化),另外一個是網絡模型多種多樣以及開源的網絡模型平臺也很多(tensorflow,pytorch等)。
    發表于 04-08 09:48 ?175次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>網絡</b><b class='flag-5'>加速</b>設計<b class='flag-5'>實現</b>

    verilog實現卷積運算

    在Verilog中實現卷積運算,你可以使用以下示例代碼。這里假設輸入數據是有符號8位數,輸出數據也是有符號8位數。卷積在數字信號處理中通常指的是兩個序列的逐元素乘積的和,也就是點乘。 module
    發表于 03-26 07:51

    【國產FPGA+OMAPL138開發板體驗】(原創)5.FPGA的AI加速源代碼

    if; end process; end architecture Behavioral; 本人寫的這個程序極度簡化了在FPGA實現AI加速器的過程,例如并行處理、流水線
    發表于 02-12 16:18

    何用FPGA加速神經網絡

    到底純FPGA適不適合這種大型神經網絡的設計?這個問題其實我們不適合回答,但是FPGA廠商是的實際操作是很有權威性的,現在不論是Intel還是Xilinx都沒有在自己傳統的
    的頭像 發表于 01-24 09:51 ?638次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>FPGA</b><b class='flag-5'>加速</b>神經<b class='flag-5'>網絡</b>

    大佬們,問一下用FPGA實現卷積碼編解碼的難度,畢設選了這個

    求助!大佬們,問一下用FPGA實現卷積碼編解碼的難度。
    發表于 10-16 23:26

    《 AI加速器架構設計與實現》+學習和一些思考

    ,如有錯誤還望大佬們指出,我馬上改正。 目錄和進度 目前閱讀到第一章,先更新到第一章的內容吧 卷積神經網絡 運算子系統的設計 儲存子系統的設計 架構優化技術 安全與防護 神經網絡
    發表于 09-16 11:11

    《 AI加速器架構設計與實現》+第一章卷積神經網絡觀后感

    《 AI加速器架構設計與實現》+第一章卷積神經網絡觀感 ? ?在本書的引言中也提到“一圖勝千言”,讀完第一章節后,對其進行了一些歸納(如圖1),第一章對常見的神經
    發表于 09-11 20:34

    卷積神經網絡的介紹 什么是卷積神經網絡算法

    卷積神經網絡的介紹 什么是卷積神經網絡算法 卷積神經網絡涉及的關鍵技術
    的頭像 發表于 08-21 16:49 ?1532次閱讀

    卷積神經網絡層級結構 卷積神經網絡卷積層講解

    像分類、目標檢測、人臉識別等。卷積神經網絡的核心是卷積層和池化層,它們構成了網絡的主干,實現了對圖像特征的提取和抽象。 一、
    的頭像 發表于 08-21 16:49 ?5168次閱讀

    卷積神經網絡的基本原理 卷積神經網絡發展 卷積神經網絡三大特點

    卷積神經網絡的基本原理 卷積神經網絡發展歷程 卷積神經網絡三大特點?
    的頭像 發表于 08-21 16:49 ?1621次閱讀

    卷積神經網絡三大特點

    是一種基于圖像處理的神經網絡,它模仿人類視覺結構中的神經元組成,對圖像進行處理和學習。在圖像處理中,通常將圖像看作是二維矩陣,即每個像素點都有其對應的坐標和像素值。卷積神經網絡采用卷積
    的頭像 發表于 08-21 16:49 ?4415次閱讀

    卷積神經網絡概述 卷積神經網絡的特點 cnn卷積神經網絡的優點

    卷積神經網絡概述 卷積神經網絡的特點 cnn卷積神經網絡的優點?
    的頭像 發表于 08-21 16:41 ?2137次閱讀

    卷積神經網絡python代碼

    卷積操作,將不同層次的特征進行提取,從而通過反向傳播算法不斷優化網絡權重,最終實現分類和預測等任務。 在本文中,我們將介紹如何使用Python實現
    的頭像 發表于 08-21 16:41 ?740次閱讀

    卷積神經網絡原理:卷積神經網絡模型和卷積神經網絡算法

    卷積神經網絡原理:卷積神經網絡模型和卷積神經網絡算法 卷積
    的頭像 發表于 08-17 16:30 ?1043次閱讀

    基于 FPGA 的目標檢測網絡加速電路設計

    適合加速卷積神經網絡,但與之對 應的是 GPU 有著功耗高,空間占用大等缺點,很多場合對功耗有嚴格的限制,而 GPU 難 以應用于這類需求。近些年來 FPGA 性能的不斷提升,同時
    發表于 06-20 19:45
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>