低計算成本技術
首先,我們將討論如何降低計算成本本身。
量化
量化是權重或激活(每層的輸入和輸出)中比特的減少,通常在 fp32 中構建。眾所周知,深度學習在推理過程中能夠以比訓練過程更低的位精度進行處理,盡管這取決于模型,但即使是 8 位定點數和位數更少的定點數也具有實用的精度。FPGA 與 1 位左右的低精度網絡特別兼容,因為可以使用 LUT 將卷積運算替換為查找表。
修剪
修剪是在卷積層等使用的權重矩陣中,稀疏化(移至 0)足夠接近 0 的值的過程。足夠接近 0 的系數對卷積運算的最終結果影響很小,因此將其設置為 0 不會顯著影響推理結果。在實踐中,我們會設置剪枝的閾值等參數,給出測試模式,檢查允許的誤差范圍。
修剪主要應用于兩個粒度。
- 1、粗粒:每通道
- 2、細粒度:單位因子
1 的粗粒度修剪只是簡單地刪除了通道,因此可以在不特別注意計算硬件的情況下提高速度。另一方面,2的細粒度修剪只會增加矩陣內部0元素的數量,同時保持矩陣的大小不變。
在這里我們將限制在這個級別,但是還有其他方法可以減少計算量,例如拓撲調整可以減少模型本身的計算量。
FPGA 上優化的 DNN 框架
在 GPU 上做深度學習時,無論前端選擇哪種框架,后端幾乎都是跑NVIDIA 優化過的cuDNN 庫。cuDNN 庫經過優化,幾乎可以榨干 GPU 的峰值性能。出于這個原因,在不實現卷積等功能的情況下在后端使用這些庫是很常見的。
FPGA 也是如此,例如 Xilinx 提供了一個名為Vitis-AI的推理框架,而英特爾 FPGA 提供了OpenVINO 工具包。在本節中,根據DPU Vitis-AI 中用于邊緣設備
DPU
DPU是Deep Learning Processing Unit的縮寫,顧名思義就是深度學習的處理器。與我們目前創建的架構不同,其中電路來處理每一層,DPU 實現了一個巨大的算術單元塊,并通過在算術單元塊上連續執行每一層的處理來執行推理過程。
DPU的硬件架構如下圖所示。如圖所示,DPU 具有類似于普通處理器的架構,例如指令調度器。
DPU只支持8bit的量化網絡,其量化工具在Vitis-AI(原DNNDK)中提供。
下面我們挑選 DPU 架構中的一些有趣的點簡單說一下。
數據并行度提取
在上一篇文章中,我們提取了像素之間和輸出通道之間的 2 軸數據并行性以進行加速。DPU 還提取輸入通道之間的數據并行性。
DPU 有幾種配置,可以根據要實現的芯片大小進行更改,如下表所示。
性能最高的B4096架構共有2048個算子,像素并行度8,輸入通道方向16個,輸出通道方向16個。雖然有 2048 個運算單元,但總共是 4096 次運算/時鐘,因為每個運算單元同時執行乘法和加法。
上次創建的架構中,運算次數最多的卷積層只有4*8=32個運算單元,兩個卷積層加起來就有32+16=48個單元,性能簡直快了近40倍,區別蠻大的。
用于 DSP 的 DDR(雙倍數據速率)
在 DPU 中,通過僅以雙倍工作頻率運行 DSP 來提高性能,如下圖所示。每個周期可能的操作數翻了一番,從而使 DSP 的使用量減半。
DPU方面主要針對Zynq Ultrascale+,工作頻率為300~400 MHz。
所以DSP運行在600-800 MHz范圍內,速度非常快。
特別是,這種時鐘分頻的優化在像這次這樣用 HLS 開發時很難重現,需要在 RTL 中進行調整。
另外,在像 DPU 這樣的架構中,每個周期持續向計算單元提供數據是一個問題,但我的印象是這也得到了很好的優化。這是作者的經驗,但是在對1K圖像進行3×3卷積時,運算單元能夠在90%以上的周期內運行(當通道數是并行數的倍數時)。
由于很難創建優化到這種程度的HLS,因此在 FPGA 上實際執行深度學習時,在某些框架上執行推理會更有效。但是,我認為有些模式在現有框架上無法很好地處理,例如使用更優化的架構來切換每一層的量化位數。在這種情況下,可能需要構建自己的硬件來處理數據。
總結
感謝您閱讀到這里。
在本系列教程中,我們專注于在 FPGA 上實際編寫代碼和執行處理。說到FPGA開發,大家可能會有這樣的印象,寫RTL很難,還得懂硬件。然而,就像我一開始創建的推理電路一樣,如果我不關心性能,我可以將高級綜合應用于普通的 C 代碼并且它可以工作。此外,在隨后的加速中,我們主要通過簡單地添加 #pragma. 就能實現 400 倍的顯著速度提升。我認為在創建DPU等優化庫時仍然需要用RTL編寫,但如果目的是在短時間內創建適度優化的庫(像這次的HLS)如果使用它,則可以輕松開發一些應用。
-
處理器
+關注
關注
68文章
19349瀏覽量
230296 -
FPGA
+關注
關注
1630文章
21759瀏覽量
604371 -
DPU
+關注
關注
0文章
365瀏覽量
24215 -
LUT
+關注
關注
0文章
49瀏覽量
12531
發布評論請先 登錄
相關推薦
評論