日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能學術 正文
發(fā)私信給楊鯉萍
發(fā)送

0

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

本文作者: 楊鯉萍 2019-06-25 16:16
導語:恭喜「西安交通大學人工智能與機器人研究所團隊 XJTU-Tripler」

雷鋒網 AI 科技評論按:2019 年 6 月 5 日,由電子自動化設計頂級會議 DAC 2019 主辦的「低功耗目標檢測系統(tǒng)設計挑戰(zhàn)賽」于美國拉斯維加斯落下帷幕。西安交通大學人工智能與機器人研究所團隊 XJTU-Tripler 憑借對算法和架構的特殊優(yōu)化,最終取得準確率 IoU61.5%;能耗 9537J,幀率 50.91Hz,功率 9.248W 的優(yōu)秀成績,斬獲 FPGA 賽道的亞軍,同時他們也作為國內唯一一個進入前三的隊伍。目前,他們已計劃開源比賽相關工具,并且提供后續(xù)支持。雷鋒網 AI 科技評論將他們所提供的設計方案及解析整理如下。

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

比賽背景

DAC,英文全稱 ACM/IEEE Design Automation Conference,是電子設計自動化和嵌入式系統(tǒng)領域的頂級會議。系統(tǒng)設計大賽(System Design Contest)由 DAC 主辦,旨在為全球機器學習系統(tǒng)設計者提供技術交流平臺,挖掘領域內優(yōu)秀方案和人才。

賽制規(guī)定以 FPGA 和 GPU 兩種硬件架構劃分,分別進行競賽。針對 FPGA 賽道,本屆大賽由 Xilinx、大疆和英偉達贊助,針對比賽方給定無人機視角的訓練數據集 (9 萬張分辨率為 360x640 的圖片,單目標標注)進行訓練,在比賽方自有的 5 萬張測試數據集上進行測試。最終檢測精度 IoU(Intersection over Union))高、且能量消耗低者勝出。

任務部署

西安交通大學人工智能與機器人研究所任鵬舉副教授所在的認知計算架構團隊 XJTU-Tripler 在本次大賽中,硬件方面使用的是專為低功耗 IoT 環(huán)境而設計的 Ultra96——Xilinx ZYNQ 的開發(fā)板,其 PS 側搭載四核 ARM Cortex-A53 CPU,主頻為 1.5GHz;由比賽方所提供。軟件方面則用到了基于 Python 的 PYNQ 框架進行開發(fā)。其中由團隊成員:趙博然、趙文哲、夏天、陳飛、樊瓏、宗鵬陳負責硬件開發(fā);魏亞東、涂志俊、趙之旭、董志偉負責算法優(yōu)化。

為了達到檢測精度與能耗的平衡,XJTU-Triper 團隊選擇并優(yōu)化了面向端側的輕量級神經網絡框架;并針對 ZU3 的資源限制,精簡了團隊之前設計的一個可以支持通用網絡的 DNN 加速器 (HiPU),將其部署在 ZU3 的 PL 側。因此,XJTU-Triper 團隊的主要工作分為針對硬件平臺的算法優(yōu)化和架構設計優(yōu)化:

算法優(yōu)化

  1. 選擇 ShuffleNet V2 作為特征提取的主框架;

  2. 選擇 YOLO 作為單目標位置的回歸框架;

  3. 對神經網絡進行 8bit 量化。

HiPU 優(yōu)化

  1. 支持 CONV,FC,Dep-wise CONV,Pooling,Ele-wise Add/Mul 等操作,峰值算力為 268Gops,效率大于 80%;

  2. 支持 Channel shuffle、divide、concat 操作,且不消耗額外時間;

  3. 提供 C、RISC-V 匯編接口的 API,調度靈活;

  4. HiPU 完全由 PL 側實現,不依賴 PS 側。PS 主要工作負載為圖片預處理和結果輸出上。

相關技術詳解

  • 單目標檢測網絡選擇

為滿足移動端的檢測實時性,XJTU-Triper 團隊最終選定了 YOLO 作為基礎檢測框架,自行定制的網絡 ShuffleDet。并將其中的特征提取網絡替換為輕量級的 ShuffleNet V2,其參數規(guī)模略大于 1X。如下圖所示為定制的單目標檢測網絡。 

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

ShuffleDet 的網絡結構示意圖

  • 神經網絡的訓練與量化

XJTU-Tripler 團隊首先在 ImageNet 數據集上預訓練一個標準的 ShuffleNet V2 分類網絡。待模型收斂后,將其中前三層特征提取部分的參數重載回 ShuffleDet 網絡中。使用比賽方的訓練集進行全部層參數的訓練。

為了適應 FPGA 的定點運算,待所有參數訓練完成后,對所有參數進行量化操作。該團隊將網絡參數和 feature map 均量化為 8bit 定點。量化過程主要分為以下幾步:1) 將 BN 層合并到參數中;2) 將合并后的參數進行對稱量化;3) 離線量化完成后需對參數進行 fine tune。下圖為量化操作的示意圖。由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

網絡參數的量化流程

經過量化后,最終目標檢測網絡 ShuffleDet 的卷積層數約為 74 層,權重約為 1.94MB,Bias 約為 78KB。量化前的全精度準確率為 67.1%,量化后的精度為 61.5%,量化操作帶來的精度損失為 5.6%。

  • 關于 HiPU

1) 整體概況

由于西安交通大人工智能與機器人研究所團隊主要面向專用集成電路(AISC)進行設計,其 FPGA 上的設計實現主要是進行功能的驗證,因此,針對賽方提供的計算平臺,我們需要對 HiPU 進行適當的裁剪,以適應 ZU3 的資源。如下圖所示為裁剪后的 HiPU 設計框圖,及其特性。HiPU 工作在 233MHz,其峰值算力為 268Gops;采用 C/RISC-V 匯編作為編程接口,卷積效率平均在 80% 以上。

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

HiPU 的結構框圖與特性

HiPU 支持各種常見的 NN 運算,包括:CONV,FC,Dep-wise CONV,Pooling,Ele-wise Add/Mul 等運算。其中 FC 也可以做到接近 100% 的計算效率。

HiPU 支持 channel 方向的 shuffle,divide,concat 操作。當這些操作緊接在卷積運算之后時,可以在硬件上進行合并,不消耗額外的時間。

HiPU 可以工作在任何種類的 Xilinx FPGA 上,不受 Zynq 架構的限制。

HiPU 底層實現矩陣運算,向量運算,以及標量運算。在做好調度的情況下,可以支持任意類型的并行計算。未來將實現稀疏矩陣運算的優(yōu)化,從而支持高效率的 DeCONV 運算,feature map 稀疏優(yōu)化。

2) HiPU 優(yōu)化點分析——通過層間級聯減少所需的 DDR 帶寬

HiPU 設計性能有兩個重要的方面:一個方面是 MAC 運算單元的利用率;一個是數據傳輸網絡是否可以匹配 MAC 所需的數據。其中數據傳輸網絡的限制大多數來自 DDR 接口。本設計針對 DDR 接口進行專門的優(yōu)化。

由于 HiPU 中 SRAM 的大小限制,無法將一層 feature map 的數據完全放在 HiPU 的 SRAM 中。采用平常的計算次序則需要將每一層的 feature map 計算結果返回到 DDR 中存儲。這樣一來每一層的 feature map 數據都需要一次 DDR 的訪問,對 DDR 的帶寬需求非常大,也會消耗額外的功耗

該團隊通過層間級聯的方式降低 DDR 的帶寬需求。以 ShuffleNet 的 bottleneck 為分界,從每個 bottleneck 的輸入處從 DDR 讀取一行 feature map,依次計算完所有的層后,輸出的一行 feature map 才寫回到 DDR。依次計算完所有行。如下圖所示為 Module C 的層間級聯計算次序。

 由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

Module-C 采用層間級聯計算方式

3) HiPU 優(yōu)化點分析——輸入圖像格式轉換以提升處理效率

HiPU 一次并行計算 8 個輸入 channel。然而網絡第一層輸入圖像僅有 RGB 這 3 個通道,導致 HiPU 計算效率僅為 3/8。因此,我們團隊針對輸入圖像設計了一個轉換模塊。如果 Conv1 的 kernel 的 width 為 3,則將輸入圖像的通道從 3 擴展到 9。最終使得第一層的處理效率從 0.38 提升到了 0.56,其轉換示意圖如下圖所示。 由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

輸入圖像在行方向上的轉換

  • 系統(tǒng)優(yōu)化設計與分析

1) 圖像解碼與卷積神經網絡計算并行化

由于 HiPU 僅僅依賴 Zynq 的 PL 側的資源進行設計,PS 側的資源可以空出來做系統(tǒng) IO 相關的工作。我們團隊在處理當前圖片的檢測運算時,在 PS 側預讀并解碼下一幅圖片,提高處理的并行度,從而使整體檢測幀率從 30.3Hz 提高到 50.9Hz。

如下圖所示為圖像解碼與卷積神經網絡并行化的示意圖。

 由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

(a) 并行化之前的工作流程

 由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

(b) 并行化之后的工作流程

圖像解碼與卷積神經網絡并行化的示意圖

2) 使用 C 代碼加速 PS 側原來的 Python 代碼

使用 C 代碼重構 PS 側比較耗時的操作,并在 Pynq 框架中采用 ctypes 接口調用重構的 C 代碼: 1) 預先計算 PL 側數據中置信度和 bbox 坐標的地址指針;2) 找到最大的置信度和對應的 BBox 的坐標,然后根據相對坐標計算出絕對坐標;

3) 使用門控時鐘降低 PL 側的能耗

為了降低系統(tǒng)的能量消耗,設計了門控時鐘策略。當 HiPU 計算完一張圖片的時候自動關閉時鐘,下一張圖片開始計算的時候再激活時鐘。設置這個策略主要基于以下兩個原因:

首先,系統(tǒng)對 jpg 格式圖片解算的時間不固定,當 SD 卡型號不固定的時候,其均值在 7ms-12ms 之間,部分圖片解算時間最大值可以到達 100ms;

其次,系統(tǒng)的功耗測量進程和其他額外開銷會占用一部分的 cpu 時間,并且 PS 和 PL 共享 DDR 帶寬,這導致了 HiPU 在 166Mhz 的時幀率到達約 50hz,但是升高 HiPU 到 200Mhz 時,系統(tǒng)處理幀率仍然保持在 50hz 左右。

上述兩個原因會導致 HiPU 處理時間和圖片 jpeg 解算時間匹配變得不固定;當 HiPU 處理圖像時間比圖像解算時間短時,HiPU 會「空跑」浪費能量。另外,針對搶占 DDR 帶寬的情況,還需繼續(xù)優(yōu)化。

結果

全球共有 58 支隊伍注冊了 FPGA 比賽任務,有 11 支隊伍提交了設計(完賽率 19%)。冠軍為 iSmart3,由 UIUC、IBM、Inspirit IoT 公司聯合組隊;亞軍為 XJTU-Tripler,由西安交通大學人工智能與機器人研究所設計;季軍為 SystemsETHZ,來自 ETH Zurich 的隊伍。

其中,XJTU-Tripler 團隊是唯一使用 Verilog,而不是 HLS 進行設計的獲獎隊伍。由于其設計的高性能 DNN 加速器,其使用的神經網絡規(guī)模也是最大的。最終競賽成績如下:

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

DAC19 系統(tǒng)設計競賽排名

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

資源情況比較

同樣的 ShuffleDet 算法在 TX2 平臺上也進行了部署,下表是兩者的分析對比。可以看出 8bits 量化后造成了 5.6% 的 IoU 絕對損失(-8.3%),但帶來了 28.87 的幀率提升(+131%)和 8309J 的能耗減少(-46.56%)。

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

ShuffleDet 在 TX2 和 Ultra96 FPGA 平臺上的性能比較

更多關于 DAC 2019

https://www.dac.com/content/2019-system-design-contest

雷鋒網 AI 科技評論

雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。

由 AI 芯片到目標檢測板,「西安交大」是如何斬獲 DAC FPGA 賽道亞軍?

分享:
相關文章
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說