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

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

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

基于Xilinx FPGA的SDK端的深度學(xué)習(xí)開發(fā)工具包

電子工程師 ? 來源:祥瑞Coding ? 作者:祥瑞Coding ? 2021-03-30 10:33 ? 次閱讀

背景:深鑒科技的DNNDK,是一個基于Xilinx FPGASDK端的深度學(xué)習(xí)開發(fā)工具包,能夠快速的實現(xiàn)深度學(xué)習(xí)的硬件化。

目的:了解深鑒科技DNNDK內(nèi)容。

參考內(nèi)容:

http://www.deephi.com/technology/dnndk

deephi_dnndk_1.10_betadocs user Guide

本篇目錄

1. 概覽

1.1 DNNDK基于什么?

1.2DP-8000開發(fā)板

2. DNNDK Framework

3. DPU應(yīng)用部署

3.1模型壓縮

3.2模型編譯

4. DPU編程

4.1DPU Kernel

4.2DPU Task

4.3DPU Node

4.4DPU Tensor

5. 混合編譯

6. 運行

7. 重要信息

7.1 板子是否為xilinx的開發(fā)板?

7.2 源碼是否公開?

正文

1概覽

DNNDK (Deep Neural Network Development Kit) - DeePhi deep learning SDK, is designed as an integrated framework, which aims to simplify & accelerate DL (Deep Learning) applications development and deployment on DeePhi DPU (Deep Learning Processing Unit) platform. (Click DNNDK for more information.)

1.1 DNNDK基于什么?

深鑒科技基于 XILINX FPGA芯片 (包括 ZYNQ-7020,ZU2,ZU3,ZU9, KU115等)實現(xiàn)了多個DPU開發(fā)平臺(2018年將對外提供深鑒自主研發(fā)的對外提供深鑒自主研發(fā)的 DPU Soc芯片) ,DNNDK對所有 DPU開發(fā)平臺向用 戶提供統(tǒng)一的工具鏈和戶編程接口 APIs。

1.2DP-8000開發(fā)板

運用zynq7020芯片,開發(fā)板與FPGA芯片是不一樣的。

A complete set of solid optimization toolchains, covering compression, compilation and runtime

Lightweight standard C/C++ programming APIs

Easy-to-use & flat/gentle learning curve

2DNNDK Framework

DNNDK組成:

DEep ComprEssioN Tool (DECENT),深度壓縮工具:提供剪枝和定點化運算。

Deep Neural Network Compiler (DNNC), 神經(jīng)網(wǎng)絡(luò)編譯器:將網(wǎng)絡(luò)算法編譯到DPU平臺高效運行。運用DECENT后的caffe網(wǎng)絡(luò)模型作為輸入。

Deep Neural Network Assembler (DNNAS), 神經(jīng)網(wǎng)絡(luò)集成器:將DPU指令流會編程標準的ELF二進制文件

Neural Network Runtime (N2Cube), 神經(jīng)網(wǎng)絡(luò)運行,運行時支持環(huán)境,神經(jīng)網(wǎng)絡(luò)的加載,資源管理,調(diào)度。N2Cube核心組件包括四個部分 : DPU驅(qū)動程序 (Driver),加載器 (Loader)、性能分析器 (Profiler)及編程開發(fā)庫編程開發(fā)庫 (Library)。

DPU Simulator and Profiler. 深度學(xué)習(xí)處理單元模擬器。simulator用于驗證二進制指令流,只是深鑒科技內(nèi)部使用,沒有對外發(fā)布。

e04dd5cc-8c65-11eb-8b86-12bb97331649.png

3DPU應(yīng)用部署

1. 模型壓縮 (主機)
2. 模型編譯 (主機)
3. DPU編程開發(fā) (主機或開發(fā)板)
4. 混合編譯 (開發(fā)板)
5. 運行 (開發(fā)板)

3.1模型壓縮

DECENT工具:

e0b7bc58-8c65-11eb-8b86-12bb97331649.png

3.2模型編譯

e11b24dc-8c65-11eb-8b86-12bb97331649.png

編譯器前端( Parser)主要處理網(wǎng)絡(luò)模型的分析與轉(zhuǎn)換,解析輸入網(wǎng)絡(luò)模型的拓撲結(jié)構(gòu)并將其為 DNNC內(nèi)部與深度學(xué)習(xí)框架生成的計算圖用IR表示。

中端為優(yōu)化器 (Optimizer),它基于內(nèi)部IR實施各種編譯優(yōu)化遍 ,包括融合計算圖中不同節(jié)點間的操作 、高效調(diào)度指令 、充分復(fù)用 DPU片上數(shù)據(jù)等 。

代碼生成器 (Code-generator)為DNNC編譯后端, 主要負責把經(jīng)過中端優(yōu)化后的計算圖IR映射成為高效運行在DPU上的指令流 。

4DPU編程

4.1DPU Kernel

將神經(jīng)網(wǎng)絡(luò)實現(xiàn)為FPGA上實體(可以看作IPcore)。DPU Kernel可以理解為在DPU平臺上部署的平臺上部署的一個深度學(xué)習(xí)網(wǎng)絡(luò)模型的實 體。每個神經(jīng)網(wǎng)絡(luò)對應(yīng) 一個 DPU匯編文件,通過調(diào)用DPU運行N2Cube時的dpuLoadKernel()成為一個可運行實體。 DPU的運行時將其加載到特定內(nèi)存空間并為其分配硬件資源。 然后通過調(diào)用 dpuCreateTask()將其實例化為多個DPU Task。

4.2DPU Task

DPU Task是 DPU Kernel的一個運行實例 。每個 DPU Task中處理一個具體的計算任務(wù)。每個 DPU Task之間的內(nèi)存空間相互獨立,使得我們可以通過多線程來運行多個 DPU Task,以此來提高系統(tǒng)效率和吞吐量 。

4.3DPU Node

DPU Node是DPU上運行網(wǎng)絡(luò)模型的一個組成部分 。每個 DPU Node都有其對應(yīng)的輸入、出以及其對應(yīng)的輸入、出以及相關(guān)參數(shù)。DPU Node依靠其名稱來索引,我們可以依靠其名稱來索引,我們可以通過 DNNDK提供的 API來獲取每個 Node的相關(guān)信息 的相關(guān)信息 。

4.4DPU Tensor

DPU Tensor是多維數(shù)據(jù)的集合 ,用來存儲網(wǎng)絡(luò)在運行過程中的數(shù)據(jù)信息。我們可以通過DNNDK提供的 API獲取某個 Tensor對應(yīng)的屬性,如 Height, Width,Channel以及地址信息。

5混合編譯

e17b2756-8c65-11eb-8b86-12bb97331649.png

6運行

e1cd9fa4-8c65-11eb-8b86-12bb97331649.png

DPU運行時主要包含四部分:加載器 (Loader)、性能 、性能分析器( Profiler)、庫( Library)和 DPU驅(qū)動( DPU Driver)。

7重要信息

7.1 板子是否為xilinx的開發(fā)板?

不是Xilinx的開發(fā)板,只是包含Xilinx的FPGA芯片7z020,開發(fā)板是深鑒科技的開發(fā)板DP-8000,但是有DPU及相應(yīng)工具的情況下可以運用Xilinx的開發(fā)板來實現(xiàn)。

7.2 源碼是否公開?

僅僅公開了主函數(shù)和.h頭文件,并沒有公開驅(qū)動和IPcore的源碼。

相當于對DPU的定義封裝到安裝文件和二進制文件中,無法看到源碼。

責任編輯:lq

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

    關(guān)注

    42

    文章

    4779

    瀏覽量

    101096
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2171

    瀏覽量

    122014
  • 驅(qū)動程序
    +關(guān)注

    關(guān)注

    19

    文章

    848

    瀏覽量

    48182

原文標題:深鑒科技DNNDK概覽

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Labview聲音和振動工具包示例文件Sound Level

    Labview 聲音和振動工具包示例文件,聲壓測試,有模擬和DAQ兩個文件。
    發(fā)表于 01-05 09:15 ?0次下載

    最新Simplicity SDK軟件開發(fā)工具包發(fā)布

    最新的SimplicitySDK軟件開發(fā)工具包已經(jīng)發(fā)布!此次更新針對SiliconLabs(芯科科技)第二代無線開發(fā)平臺帶來了包括藍牙6.0的信道探測(Channel Sounding
    的頭像 發(fā)表于 12-24 09:47 ?263次閱讀

    基于EasyGo Vs工具包和Nl veristand軟件進行的永磁同步電機實時仿真

    EasyGo Vs Addon是一款領(lǐng)先的FPGA仿真工具包軟件,它強大地連接了VeriStand軟件與Matlab/Simulink,為實時測試和驗證領(lǐng)域帶來了前所未有的便利和效率,特別適用于汽車
    的頭像 發(fā)表于 11-27 11:28 ?380次閱讀
    基于EasyGo Vs<b class='flag-5'>工具包</b>和Nl veristand軟件進行的永磁同步電機實時仿真

    云計算開發(fā)工具包括什么

    云計算開發(fā)工具種類繁多,包括IDE、虛擬化軟件、容器化平臺、自動化部署工具和云平臺等。
    的頭像 發(fā)表于 11-22 10:11 ?237次閱讀

    FPGA仿真工具包軟件EasyGo Vs Addon介紹

    EasyGo Vs Addon是一款領(lǐng)先的FPGA仿真工具包軟件,它強大地連接了VeriStand軟件與Matlab/Simulink,為實時測試和驗證領(lǐng)域帶來了前所未有的便利和效率,特別適用于汽車、航空航天和能源電力等實時測試和驗證至關(guān)重要的行業(yè)。
    的頭像 發(fā)表于 10-24 15:55 ?487次閱讀
    <b class='flag-5'>FPGA</b>仿真<b class='flag-5'>工具包</b>軟件EasyGo Vs Addon介紹

    Altera推出一系列FPGA軟、硬件和開發(fā)工具

    近期,英特爾子公司Altera推出了一系列FPGA軟、硬件和開發(fā)工具,使其可編程解決方案更易應(yīng)用于廣泛的用例和市場。Altera在年度開發(fā)者大會上公布了下一代能效與成本優(yōu)化的Agilex 3
    的頭像 發(fā)表于 10-12 10:47 ?584次閱讀

    瑞星微刷機工具開發(fā)工具

    瑞星微刷機工具開發(fā)工具
    發(fā)表于 10-09 11:14 ?1次下載

    FPGA深度學(xué)習(xí)能走多遠?

    、高效的開發(fā)工具和編程模型,降低 FPGA開發(fā)門檻,吸引更多的開發(fā)者參與到 FPGA深度
    發(fā)表于 09-27 20:53

    FPGA開發(fā)工具

    學(xué)習(xí)開發(fā)FPGA,需要預(yù)先準備好的工具嗎?比如示波器‘邏輯分析儀之類的。畢竟側(cè)重于硬件方面的處理。不知道和單片機開發(fā)有多少不同,和需要注意的
    發(fā)表于 07-29 22:04

    使用freeRTOS開發(fā)工具包時,在哪里可以找到freeRTOS的版本?

    作為主題,當我使用 freeRTOS 開發(fā)工具包時,在哪里可以找到 freeRTOS 的版本?
    發(fā)表于 07-09 07:17

    Diamond開發(fā)工具使用說明

    Diamond開發(fā)工具使用說明
    發(fā)表于 05-23 09:14 ?0次下載

    瑞薩Smart Configurator支持SEGGER集成開發(fā)工具

    Configurator代碼生成器中。此次集成將為Renesas新推出的R9A02G021系列MCU提供開發(fā)工具支持,標志著瑞薩電子在通用應(yīng)用領(lǐng)域首次推出32位RISC-V MCU的重大突破。
    的頭像 發(fā)表于 05-10 14:25 ?820次閱讀

    FPGA深度學(xué)習(xí)應(yīng)用中或?qū)⑷〈鶪PU

    ,這使得它比一般處理器更高效。但是,很難對 FPGA 進行編程,Larzul 希望通過自己公司開發(fā)的新平臺解決這個問題。 專業(yè)的人工智能硬件已經(jīng)成為了一個獨立的產(chǎn)業(yè),但對于什么是深度學(xué)習(xí)
    發(fā)表于 03-21 15:19

    芯原股份:集成NPU IP的AI芯片出貨量已破億

    芯原的NPU IP設(shè)計獨特,利用低功耗、可編程和可擴展的架構(gòu),打造了一款性能優(yōu)越的AI硬件模塊,滿足多樣化需求。配套豐富的軟件開發(fā)工具包SDK),支持所有知名深度學(xué)習(xí)框架,確保用戶能
    的頭像 發(fā)表于 02-29 09:24 ?985次閱讀

    QE for Motor V1.3.0:汽車開發(fā)輔助工具解決方案工具包

    電子發(fā)燒友網(wǎng)站提供《QE for Motor V1.3.0:汽車開發(fā)輔助工具解決方案工具包.pdf》資料免費下載
    發(fā)表于 02-19 10:44 ?0次下載
    QE for Motor V1.3.0:汽車<b class='flag-5'>開發(fā)</b>輔助<b class='flag-5'>工具</b>解決方案<b class='flag-5'>工具包</b>