基於國內首款深度學習SDK——深鑒科技DNNDK的DP-8000開發板評測

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

人工智能是一個高度複雜的領域,不僅廣,而且細,想要入門不易。但是如果你恰好有一個與你技能相匹配的開發平臺,那想要切入AI領域無疑會事半功倍。DNNDK(Deep Neural Network Development Kit)是深鑑科技推出的一個面向 AI 異構計算平臺DPU(Deep-Learning Processor Unit)自主研發的原創深度學習 SDK, 涵蓋了神經網絡推理階段模型壓縮、編譯優化和高效運行時支持等各種功能需求,基於標準 C/C++高級語言的輕量級編程 APIs開發,是為 DPU 平臺各種深度學習應用開發和部署提供的一套高效全棧式解決方案。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

雖然上面只是很簡短的一段話,但裡面涵蓋的信息量巨大,比如,DNNDK SDK如何使用,有什麼限制條件?你知道目前哪些平臺可以看做是深鑑科技認可的DPU嗎?模型壓縮又是怎麼回事,會影響到模型的精準度嗎?編譯優化又是怎麼回事?只需要瞭解C/C++即可?全棧式解決方案是否真正能高效解決AI的開發等等問題?不用著急,這些疑問將會在文章中一一解答。

DNNDK SDK

DNNDK SDK包含兩部分,一部分是安裝在PC主機上,官方推薦是需要配有英偉達GPU的電腦,主要用於網絡模型的壓縮;一部分是安裝在DPU平臺的開發板上,可以實現編譯優化以致後續在開發平臺上進行邊緣推理計算。DPU直譯過來就是深度學習單元,其具備一套深鑑科技開發的專門針對深度神經網絡算法設計的優化指令集,是為解決深度學習類應用重計算負載需求專門優化和設計的加速計算平臺。目前來看,深鑑科技會在今年推出自己的DPU,也就是為這個DNNDK SDK準備的專用平臺。

而在此之前,所謂的DPU平臺囊括了深鑑科技已經適配過的搭載Xilinx的一些FPGA/SoC系列,與純FPGA最大的不同是它同時需要具備ARM架構的處理器,可以配套Linux內核系統,而這也是DPU平臺的一個硬條件,它需要在Linux系統下安裝DNNDK驅動來實現全棧式的解決方案。目前官方認證可以實現DNNDK的平臺有: ZYNQ-7020,ZU2, ZU3, ZU9,KU115,差不多全是Xilinx的開發平臺。在當下,深鑑科技還沒有自己的DPU平臺前,想要了解DNNDK SDK只能在Xilinx的平臺上測試,筆者手上倒是拿到了深鑑主推的一塊基於Xilinx Zynq-7020 SoC的開發板DP-8000,一起來了解下吧。

DP-8000開發板

DP-8000開發板是深鑑科技推出的基於DNNDK開發包的DPU平臺,採用Xilinx XC7Z020-2CLG400I SoC,提供了嵌入式開發環境的常用特性,包括DDR3、Flash、USB、HDMI、ETH、SD、CAN、UART、JTAG 、GPIO等。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

DP-8000開發板特性:

  • DP-8000開發板特性:

  • ZYNQ XC7Z020-2CLG400I器件

  • 1GB DDR3顆粒內存(2片256Mb x 16顆粒)

  • 4Gb NAND Flash存儲

  • USB 2.0接口

  • HDMI 1.3發送接口

  • 10/100/1000三速自適應網口

  • SD卡接口

  • CAN總線接口

  • UART接口(板卡包含UART轉USB PHY,以USB接口對外呈現)

  • JTAG接口時鐘源(33.333MHz單端給PS,50MHz單端給PL)

  • DC-JACK電源插座(5V/2A)

  • 電源撥動開關GPIO

  • -- 8個PL使用的LED

  • -- 一個雙排GPIO排針

  • -- 2個FFC排座

  • -- 2個啟動模式選擇撥碼開關復位按鍵

  • -- SRST_B PS復位按鍵

  • -- POR_B PS復位按鍵啟動方式

  • -- JTAG

  • -- SD卡

  • -- NAND FLASH

不清楚官方為何叫DP-8000開發板,筆者手上拿到的開發板實際顯示的絲印是DPB7100,板子採用了底板+核心板的結構組合,通過DIMM接口連接。

DP-8000開發板正面佈局。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

5V的DC電源接口、MircoUSB轉UART接口(CP2103USB轉串口芯片)、HDMI接口(Silicon Image SSI9134CTU HDMI收發器)

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

DP-8000開發板一側的接口,包括千兆以太網口、MicroUSB OTG接口、MicroSD卡座、HDMI、MicroUSB轉UART、5V DC JACK

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

電源開關、32pin擴展接口,其中還包含CAN總線接口。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

CMOS FPC接口。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

JTAG接口、啟動設置撥碼開關、復位按鍵。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

DP-8000開發板背面,核心板與底板的組合是通過DIMM接口。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

核心板帶有散熱片,散熱片下面是Zynq-7020 SoC,旁邊則是以太網收發器、DC/DC降壓器、512MB SDRAM。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

核心板背面是512MB SDRAM,512MB NAND Flash,所以總共板子搭載了1GB的SDRAM,從好幾個做圖像模型推理的應用來看,AI對內存的需求還是有要求的,畢竟模型所佔空間的大小在那擺著,而做推理是需要將模型加載到內存中執行的。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

基本清楚DP-8000開發板的硬件情況後,我們配合深鑑科技的DNNDK深度學習神經網絡開發包實際來上電操作瞧瞧。

上電測試

DP-8000 開發板可通過三種模式進行開發:與主機通過串口連接、與主機通過網絡連接、開發板獨立工作。

原本是想用開發板獨立工作的模式進行測試,無奈,試了下發現筆者手上的硬件條件不允許,只能通過串口配置再通過SSH(X11轉發)來實現圖像推理測試。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

主要連接的設備:

  • MicroUSB接口用於連接電腦,實現開發板啟動信息的打印以及配置網絡方便後續使用SSH工具

  • 網線連接用於實現SSH,需要用到SSH中的X11轉發來實現界面查看

  • MicroSD卡用於存放操作系統引導鏡像及文件系統

DP-8000開發板上電後可以從串口中看到啟動信息,顯示的是512MB NAND Flash,1GB RAM,另外也可以通過串口查看系統引導過程中的狀態信息(串口需要安裝CP2103的串口驅動,網上一找一大把,文章中就不放出來了)。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

因為使用的是官方提供的鏡像,沒想到在串口模式下自動執行登錄,從登陸信息可以看到當前使用的 Linux 內核版本為 4.9.0。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

OK,上面是關於開發板本身的系統狀態,然後就是需要安裝深鑑科技的DNNDK SDK開發包,這個開發包可以在深鑑科技官方下載(下載地址),下載時需要你提交身份信息。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

整個SDK包目前顯示的是1.10的beta版本,deephi_dnndk_1.10_beta.tar,壓縮包大小為536MB,解壓縮出來也只有603MB。

在使用這個SDK之前,有必要了解下DNNDK的整個框架,這有助於你瞭解這個開發包所具備的優勢。如下圖所示,DNNDK包括了深度壓縮工具 DECENT,神經網絡編譯器DNNC,神經網絡彙編器 DNNAS ,神經網絡運行時支持 N2Cube,Simulator 和 Profiler 等核心組件構成。簡而言之,下圖中藍色部分的這幾個東西都很重要,是DNNDK的核心組件。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

簡單說下,DECENT作為神經網絡壓縮工具,在保證基本不損失算法精度的前提下將網絡模型的計算量和規模壓縮數倍至數十倍,從而實現DPU平臺下深度學習應用更優的性能、更高的能效比、更低的系統內存帶寬需求。換而言之,可以讓你降低平臺硬件性能,從而也降低了成本,靈活性也更高。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

DNNC作為神經網絡編譯器,將訓練後經過DECENT壓縮的神經網絡模型映射為 DPU 上高效執行地優化指令流。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

通過混合編譯技術,將上面運行在DPU上的神經網絡指令流代碼與用戶基於C/C++語言開發、運行在CPU上的應用代碼一起完成混合編譯和鏈接實現DPU平臺深度學習應用的一鍵式便捷部署。從這裡你應該注意到一個重大的發現,那就是雖然我們基本Xilinx FPGA平臺,但是你不需要具備FPGA的VHDL或者Verilog開發技術,你只需要會C/C++即可,通過深鑑科技提供的開發包,你完全可以實現在FPGA上實現深度學習應用的一鍵式便捷部署。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

如果對這部分內容感興趣的朋友,想詳細瞭解其中關鍵,可以下載深鑑科技提供的DNNDK SDK開發包,裡面包含了詳細的用戶指南,相信可以讓你清晰瞭解這個技術的價值。

迴歸正題,在深鑑科技官網下載的DNNDK SDK的目錄結構如下兩張圖所示,其中包括了用戶指南,針對PC主機的安裝包。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

針對開發板的安裝包和應用例程,而且SDK的安裝非常方面,直接通過運行.sh文件執行安裝。

在znyq7020_arm文件夾目錄下,目前有6個應用,ResNet50、Inception v1、VGG16、Face Detection、Pedestrian Detection、Video Structure Analysis,不出意外,這些已經是經過壓縮編譯後的新模型了,所以已經從原先比較大的模型中經過裁剪優化過了。

基於國內首款深度學習SDK——深鑑科技DNNDK的DP-8000開發板評測

有些遺憾的是官方提供的PC主機的安裝包言明需要在搭載英偉達的GPU的電腦上安裝使用,筆者沒這條件無奈作罷,只能在BP-8000開發板上體驗實際的網絡模型成果。

想閱讀全文,請訪問:http://www.eeboard.com/evaluation/dp-8000/5/


分享到:


相關文章: