當前位置:
首頁 > 知識 > UIUC聯合IBM、Inspirit IoT推出最新DNN/FPGA協同設計方案,助力物聯網終端設備AI應用

UIUC聯合IBM、Inspirit IoT推出最新DNN/FPGA協同設計方案,助力物聯網終端設備AI應用

機器之心發布

機器之心編輯部

UIUC、IBM 和 Inspirit IoT, Inc(英睿物聯網)的研究人員提出 DNN 和 FPGA 加速器的協同設計方案(DNN/FPGA co-design),通過首創的「Auto-DNN」網路搜索引擎 「Auto-HLS」加速器生成技術,自動生成適用於終端設備的 DNN 模型及 FPGA 加速器設計。在使用相同的終端設備,由該協同設計自動生成的物體檢測方案在檢測精度、速度和效能方面均大幅領先現時最優的 DAC"18 System Design Contest 冠軍方案。

全文地址:https://arxiv.org/pdf/1904.04421.pdf

本文已被電子設計自動化頂會 IEEE/ACM Design Automation Conference (DAC』19) 接收,並將於本年 6 月份在美國拉斯維加斯宣讀。文章的共同第一作者為 UIUC 博士後研究員郝聰和博士生張曉帆。

郝聰博士在 2012 年、2014 年獲早稻田、上海交大碩士學位,並於 2017 年博士畢業於早稻田大學,現為 UIUC 博士後研究員,師從陳德銘教授進行機器學習演算法及硬體加速的研究。

張曉帆現就讀於 UIUC 電氣與計算機工程系,師從陳德銘教授,主攻基於 FPGA 的深度學習加速器設計。他參與設計的 DNN 加速器自動生成工具 DNNBuilder 曾獲電子設計自動化頂會 ICCAD"18 的最佳論文(鏈接)。

陳德銘教授是 UIUC 電氣與計算機工程系終身教授,IEEE Fellow,擔任 Inspirit IoT, Inc(英睿物聯網)總裁兼董事會主席。他是電子設計自動化領域的知名學者,研究領域包括 FPGA、高層綜合工具、機器學習等。

參與本研究的學者還包括 Yuhong Li、 Sitao Huang、 Jinjun Xiong、 Kyle Rupnow 和 Wen-mei Hwu。

嵌入式 FPGA 助力 AI 應用靈活部署

現時,大量的 AI 應用被部署在物聯網設備中以滿足實際場景需求。縱使雲端伺服器能分擔大部分 AI 應用的計算壓力,部分對實時性要求高的任務受限於網路延時,還是需要在終端設備處理,如自動駕駛車輛、無人機上的物體識別,場景分割任務等。在物聯網終端設備中部署 DNN,設計者需要克服 DNN 精度要求高、實時性要求強、能耗要求低、終端設備可用資源少等困難。

通過在終端中使用嵌入式 FPGA 作為 DNN 加速器,設計人員可獲得更低的延時和能耗(對比 CPU/GPU 解決方案),以及更高的靈活度和更短的產品上市周期(對比 ASIC 解決方案)。然而,在資源受限的嵌入式 FPGA 中部署 DNN 加速器依然困難重重。

高質量 AI 應用需要 DNN/FPGA 協同設計

通常,DNN 及 FPGA 加速器會被分成兩步獨立設計。

一方面,DNN 設計會優先滿足精度需求,並在部署時寄望硬體加速器能提供足夠高的吞吐率和實時性能。但由於 DNN 在設計初期缺乏對目標硬體特性的考量,網路結構會過分複雜併產生冗餘,容易超出目標硬體可承受範圍。

另一方面,DNN 加速器在架構確定後會通過比例縮放計算和存儲單元以適應不同大小的 FPGA。在硬體資源極度受限時,過分縮小加速器會大幅減慢 DNN 推理計算效率,最終導致無法滿足應用實時性、吞吐率等要求。

上述獨立設計方法需要經歷多次反覆設計 DNN 及加速器,如在 DNN 設計時嘗試網路剪枝、稀疏化、參數量化等以減少網路推理計算量,在加速器設計時嘗試不同核心計算單元、調試並行參數等以適配硬體可用資源。這類設計需要探索巨大的設計空間,異常繁瑣和耗時。

為此,作者認為業界需要一種更高效的自動 DNN/FPGA 協同設計方案:在設計 DNN 時充分考慮加速器架構、資源約束等硬體因素;並且,同時生成高度優化的 FPGA 加速器以用於物聯網終端設備。

自動客制化 DNN/FPGA 加速方案

本文提出的協同設計流程(圖 1)共包含 4 個主要模塊:1)DNN 結構模板 Bundle-Arch;2)網路搜索引擎 Auto-DNN;3)低延時加速器基礎架構 Tile-Arch;4)加速器生成器 Auto-HLS。其中,前兩個模塊用於 DNN 結構搜索,而後兩模塊對應 FPGA 加速器設計。

協同設計第一步是搭建 Bundle 並對 Bundle 建立計算延時和資源消耗模型。對於給定的 AI 任務(分類、物體檢測等),系統從硬體 IP 池中選取神經網路組件並組合成多個 Bundle(如圖 1 左下的 Bundle 1 包含了 Conv3x3,Conv5x5,Pooling 和 Relu 共 4 個 IP)作為 DNN 基本結構,並通過分析模型獲取每一個 Bundle 在目標 FPGA 上的延時和資源消耗。這確保 DNN 在設計之初就包含了足夠的硬體信息。

在第二步,該方案選擇前 N 個滿足性能和資源要求且精度最高的 Bundle 搭建原型網路。在對 Bundle 作粗 / 細粒度評估後,每一個 Bundle 將被置於「硬體性能 - DNN 精度」空間,並將硬體性能指標相近的 Bundle 分為一組。每組精度最高的若干個 Bundle(共 N 個)會被選中並交由下一步處理。

最後一步,Auto-HLS 產生精準硬體性能信息協助 Auto-DNN 更新原型網路。基於 Bundle 的 DNN 結構(圖 2)擁有網路層數多寡、通道數增減等不同配置。Auto-DNN 使用隨機坐標下降(SCD)演算法探索 DNN 配置,並藉助 Auto-HLS 產生的硬體性能信息(如運算延時、資源消耗等)為反饋,選擇最適合目標硬體且精度最好的設計。

兩大核心:「Auto-DNN」網路搜索引擎 「Auto-HLS」加速器生成技術

本文提出了多個針對物聯網終端設備設計 DNN 和 FPGA 加速器的創新點,包括通過採用在 DNN 設計初期注入硬體性能信息、適度限制 DNN/FPGA 協同設計空間等方案,加快協同設計速度的同時保留了生成網路的多樣性,讓協同設計同時滿 足 AI 應用的精度與硬體性能要求等。作者著重介紹了兩大核心技術 Auto-DNN 和 Auto-HLS。

「Auto-DNN」網路搜索引擎對輸入 Bundle 作粗 / 細粒度評估,選擇可行的 Bundle 構建網路並對網路結構進行更新,以達到在硬體資源限制條件下的精度與硬體性能要求。其中,粗粒度性能評估將通過短時間訓練獲取 Bundle 的在目標數據集的精度信息,並通過分析模型獲取資源消耗和計算延時信息。評估結果如圖三所示,在 Pareto 曲線上的 Bundle 將被選擇進行更細粒度評估。

細粒度評估使用與數據量化相關的不同激活函數(ReLU、ReLU 4、8 等),用於揭示所選 Bundle 更深層的特性。如圖 4 所示,Bundle 1 和 3 更利於為 DNN 帶來高精度,而 Bundle 13 則更偏向硬體實現時的實時性。

然後,Auto-DNN 開始利用 Bundle 搭建原型 DNN 並對網路結構進行更新。這個過程中可被更新的參數包括 DNN 結構參數(網路層數、降採樣次數及插入位置、通道數擴展因子)和硬體實現參數(例化的硬體 IP 數目、並行因子、量化方案)。更新演算法採用隨機坐標下降(詳見文章演算法 1)讓 DNN 在每次迭代更新後進一步逼近預設的性能和精度目標。

「Auto-HLS」加速器生成技術用於自動生成基於 FPGA 的加速器代碼,以大幅縮短加速器開發周期和設計工時。本文加速器採用迭代式總體架構(圖 5a),Bundle 中包含的 IP(如圖 5a 中的 Conv3x3,1x1 和 pooling IP)在硬體實例化後將被重複利用以節省硬體資源消耗。

為減少數據讀取延時,加速器採用 FPGA 片上存儲器(Block RAM)緩存 Bundle 內數據量較少的 IP 中間計算結果,採用片外存儲器(DRAM)提供 Bundle 間數據交互,以及為數據量較大的 DNN 參數提供存儲空間。本文的加速器設計還採用了以 tile 為基本計算單位的流水線結構,能進一步加快計算速度(圖 5b)。

實例展示:DAC"18 目標檢測系統挑戰賽

為評估 DNN/FPGA 協同設計效果,作者選擇了與 DAC"18 System Design Contest 中相同的任務(無人機視覺下低功耗物體檢測系統設計),並使用同型號 FPGA 設備(Xilinx PYNQ Z-1)作對比。

在明確 AI 任務和輸入目標硬體可用資源數目到系統後,作者設定了 3 個加速器性能目標(吞吐率為 10、15、20FPS)並由 DNN/FPGA 協同設計方案自動生成最合適的 DNN 及對應的加速器。結果如圖 6 所示,該方案選取了 5 個 Bundle 並搭建了 68 個 DNN 以對應 3 個不同的性能目標。最終,表現最佳的 DNN1、2 和 3 及其加速器被選中,並與 DAC 挑戰賽的前 3 名設計作對比。

與挑戰賽 FPGA 組別的冠軍模型相比,本文生成的 DNN1 在同型號 FPGA 上獲取更快吞吐率(1.45 倍更高的 FPS)、更優秀單張圖片處理能耗(2.5 倍更低的 Joule /Picture)的同時,取得 6.2% 更高的物體識別精度(IoU)。與 GPU 組別(使用 Nvidia TX2)的冠軍設計對比,本文設計在使用更少計算存儲單元、更低頻率時鐘的情況下,提供了相近的識別精度及 3.6 倍更低的單張圖片能耗。

圖 6 協同設計所有生成的 DNN(基於選中 Bundle 搭建)及其精度、硬體性能(FPS)信息

表 1 協同設計生成 DNN 及其加速器與 DAC"18 System Design Contest 獲獎設計對比

結論

本文作者提出了一種 DNN/FPGA 協同設計方案。該方案使用創新性的「Auto-DNN」網路搜索引擎去生成適用於目標硬體的 DNN 結構,並能通過「Auto-HLS」自動生成加速器代碼,快速部署於嵌入式 FPGA 上,為物聯網終端設備提供高效 DNN 推理能力。

本文為機器之心發布,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

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

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


請您繼續閱讀更多來自 機器之心 的精彩文章:

GAN初創者另有其人?IanGoodfellow:只是純策略版本

TAG:機器之心 |