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

机器之心發表於2019-05-25

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

UIUC聯合IBM、Inspirit IoT推出最新DNN/FPGA協同設計方案,助力物聯網終端裝置AI應用全文地址: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。

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

嵌入式 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 加速方案

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

本文提出的協同設計流程(圖 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 產生的硬體效能資訊(如運算延時、資源消耗等)為反饋,選擇最適合目標硬體且精度最好的設計。

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

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

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

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

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

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

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

然後,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)。

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

例項展示: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 倍更低的單張圖片能耗。

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

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

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

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

結論

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

相關文章