當前位置:
首頁 > 新聞 > HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

雷鋒網AI研習社按:DAC19目標檢測設計是一個面向移動端的單目標物體檢測的比賽,檢測精度高且能耗低者勝出。我們團隊設計了單目標檢測的深度學習演算法ShuffleDet,和面向Xilinx ZU3的AI硬體加速器,獲得了FPGA賽道的第二名。本次分享主要介紹我們團隊的設計方案。

分享嘉賓:趙文哲,西安交通大學人工智慧與機器人研究所研究員,倫斯勒理工學院訪問學者,主要研究方向為計算機體系結構,糾錯碼設計,以及企業級存儲方案設計。

公開課鏈接:http://www.mooc.ai/open/course/674?=from%20leifeng0717

分享主題:HiPU設計簡介--DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹

分享提綱:

  • DAC19比賽背景介紹;

  • 演算法選擇及訓練介紹;

  • 一種通用目的的AI加速器設計簡介;

  • 性能分析與結論。

雷鋒網AI研習社將其分享內容整理如下:

大家好,我們來自於西安交通大學人工智慧研究所。在今年DAC會議舉辦的自動化系統設計大賽上獲得了亞軍,今天主要介紹一下我們的設計方案。我負責這個方案的演算法部分,演算法部分主要進行了目標檢測遞層框架的搭建、神經網路演算法的壓縮,後面主要由趙老師講一下硬體架構的設計。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

這個是由英偉達、大疆他們共同組建的一個比賽,數據集由大疆提供——基於大疆無人機拍攝出的目標檢測的數據集,比賽從準確率、速率、網路效率等方面綜合考量之後,給參賽隊伍一個相應的分數,以上這些是關於比賽的大概介紹。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

在比賽中,演算法方面主要是兩個工作,第一個是神經網路的選取,這個工作需要在一非常小的BP上配置神經網路,所以首選儲存空間小、效率高的這種來作為特徵提取的基本網路。在這個網路訓練過程中,主要進行了兩個部分的優化,首先是將神經網路進行預訓練,第二個優化是針對硬體優化的,將ShuffleNet V2變成8的倍數,方便後面進行配置。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

演算法方面的第二個工作主要是介紹網路的量化,網路的量化也分為兩個主要的部分,首先是將一些特殊的層進行融合,如圖示左邊部分。其次是8bit的量化過程,如圖示右邊部分。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

下面介紹一下量化過程中的一些關鍵點,第一個點就是神經網路越小,量化難度越高,來看一下下圖所示右邊部分,是當時我們為了驗證這個說法做的一個實驗。第二個點就是上一頁的cabs函數,這個函數主要是保護權重和輸出在要求的範圍內不產生溢出,最好是先讓網路訓練一段時間,在權重和輸出都比較穩定的時候再把函數加入進去。第三個點就是ratio_a,指的是輸出值,這個值的統計是一個非常精細的過程。第四個需要注意的點就是,在完成離線的量化工作之後,在實際操作中,需要跳過round函數的梯度。

關於量化這個領域,建議大家讀一下以下這些論文,如下圖。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

我這部分講完了,接下來是趙老師來介紹。

在我們的網路和參數訓練完成之後,就需要設計一套硬體加速處理器,以便讓神經網路能夠高效的運行。為了實現上述目標,我們設計了一個通用的,可以支持幾乎所有網路的加速器,將它命名為HiPU。這個加速器主要包括這樣幾個模塊,首先是一般的控制模塊,除此之外有矩陣運算和矢量運算。在HiPU裡面,主要是處理卷積、Depth-wise卷積、padding、pooling、跟channel相關的shuffle操作以及concat操作。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

先看一下幾個基本操作,如下圖右側所示,是HiPU的基本結構圖。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

接下來看一下計算過程,以卷積為例,當數據已經放在MRa、MRb中之後,通過計算器發出開始卷積的命令,然後conv_ctrl模塊會把一個卷積拆解成很多矩陣運算和矢量運算的指令,MPU和VPU內部會把數據讀上來,計算完之後再送到VPU做一次運算的結尾部分,算完之後再寫回到MRa之中,流程大概就是這樣。DW卷積也是類似,如圖所示。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

接下來看一下相關的幾個優化,首先我們並不是算完一層就立刻返回,以module_c為例,先做一個切分,把前一半的數據直接傳到後面,後一半的數據分別經過1x1的卷積,然後經過3x3的卷積,再經過1x1的卷積,和之前的數據做一個shuffle之後輸出。在這個過程中,並不是說做一個卷積就算完了就立刻輸出。繼續講第二個優化,在此之前說一下我們這種做法的問題,問題是一次需要讀入8個輸入channel的數據,但是輸入層只有RGB三個通路,如果要處理這樣的數據,就必須要補上5個channel的0,計算效率也就只有八分之三。針對這個問題,如果第一層卷積是3x3的,可以考慮做這樣一個變換,把相關的數據排列過來,如下圖,這樣的做法可以讓卷積效率提高很多。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

除此之外我們再看一下作為系統的優化,系統分為PS側和PL側,大部分卷積運算都是放在PL側進行的,最後一層的輸出是放在PS側來做的。在PL側做大量卷積運算的時候,PS側是空閑著的,但是現在在做當前圖的卷積運算的時候,PS側會進行下一張圖的預讀取,通過這種方式可以顯著地減少讀圖所消耗的時間。除此之外是對計算Calc bbox的優化,通過外擴C函數,把計算時間從2毫秒降到0.6毫秒,而且,讀圖像的時間也可以減少。最後還有一個問題,之前使用的SD卡並不是最好的SD卡,會出現這種PS側一直在讀圖,但是PL側已經算完了的尷尬情況,於是增加了一個門控時鐘來降低功耗。

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

接下來是HiPU的一個總結。我們的HiPU可以在單倍頻和雙倍頻模式下工作在233MHz,峰值算力為268Gops。資源佔比中,LUT站到62%左右,還有繼續提升的空間。編程API為C以及RISC-V風格的彙編。支持的主要操作如下圖所示:

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

下圖是HiPU在不同的配置環境下執行這次比賽的任務的性能分析:

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

介紹一下我們的Roadmap,如圖所示:

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

最後請欣賞我們設計的2個Demo:

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹|AI 研習社 157期大講堂總結

今天的介紹主要就是這些,謝謝大家。

以上就是本期嘉賓的全部分享內容。更多公開課視頻請到雷鋒網(公眾號:雷鋒網) AI 研習社社區http://ai.yanxishe.com/觀看。關注微信公眾號:AI 研習社(okweiwu),可獲取最新公開課直播時間預告。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

1TB警用數據被公開,警察蜀黍「被直播」
自動駕駛系統解決方案「MAX」上路 它能打敗特斯拉的Autopilot嗎?

TAG:雷鋒網 |