新聞中心

EEPW首頁 > 智能計算 > 牛人業話 > 賽靈思器件上的 INT4 優化卷積神經網絡(2)

賽靈思器件上的 INT4 優化卷積神經網絡(2)

作者:Xilinx時間:2020-09-15來源:EEPW收藏

接上期http://www.303263.tw/article/202009/418351.htm

本文引用地址:http://www.303263.tw/article/202009/418352.htm

DSP 片上的 優化


使用 DSP 硬件資源可實現乘法和累加 (MAC) 占用硬件資源較少。經優化后,DSP 能夠在 16nm 或 28nm 器件上處理盡可能多的 MAC 運算。以 16nm 為例,可編程器件中 UltraScale? 架構的 DSP48E2 片就屬于專用片[參考資料 11]。DSP48E2 片由一個 27x18 二進制補碼乘法器和一個 48 位累加器構成。如圖 3 所示,MAC 能使用 DSP 片完成。

圖片.png

圖 3:MAC 模式下的 DSP48E2 片


 
優化

在低精度 MAC 運算中,相乘方式是 a*b。其中 a 是 4 位無符號激活參數數據,b 是 4 位有符號權重參數數據。DSP48E2 片可被配置成 4 通道乘法運算,如圖 4 所示。
1600174390168667.png 

DSP48E2 片的端口 A 是 27 位寬。端口 B 是 18 位寬。int4 * uint4 相乘產生的結果至少有 8 位寬。充分利用 DSP 資源的前提是在多個相乘被打包在一起時,確保輸出結果保持正確。為確保這一點,通道之間添加了保護位。當四個 MAC 通道被打包在一起時,需要在兩路輸入間布置足夠的保護位。根據 DSP48E2 片的設計,保護位被設置為 3 位:
1600174460585058.png 

第一個通道 A1*W1 被布置在對應端口的 4LSB 上。下一個通道 A2*W1 需要移位至少 8 位才能正確計算。第二個通道與第一個通道共享權重參數數據 W1。端口 B 中的 A2 移位 11 位。3 位保護位用于最大化 DSP 資源的利用。最后一個計算元 W2 被分配給端口 A。最后兩個通道是 A1*W2 和 A2*W2。權重參數是有符號數據。在相乘開始前,使用 27 位預加法器打包兩個權重參數數據。因為 W1 需要符號擴展,所以 W2 不能布置在 D 端口的四個 MSB 上[參考資料 12]。如果 W2 在 MSB 中,當 W1 < 0 且 W2 = -8 時,預加法器就會溢出。后 48 位加法器可用作累加器,通過級聯對之前層次的 DSP 結果進行相加。單個 DSP48E2 就能在單個時鐘周期內實現四通道 MAC。
結果的位寬在累加后增大。硬件友好型量化器是一組移位寄存器,它可以通過指令控制移位的位數。移位運算是硬件友好型的。在低精度 CNN 中,卷積能夠使用兩種量化方法之一。一種是逐計算元地輸出 8 位。另一種是對下一卷積輸出 4 位。通過算法優化,兩種量化方法都能量化成 2k 步長。差別在于輸出數據的位寬以及它們是否是有符號數據。

 
DSP 強化使用

DSP 雙數據速率 (DDR) 技術被用于改進由 DSP48 片實現的性能[參考資料 13]。因此需要為 DPU 提供兩個輸入時鐘:一個用于通用邏輯,另一個用于 DSP 片。未采用 DSP DDR 技術的 DPU 和采用強化使用模式的 DPU 之間的差異如圖 5 所示。
圖片.png

 

面向 CNN 要求的計算圖

卷積是 CNN 網絡的主要計算要求。卷積的實際計算任務如下:

1600174580409334.png


其中Anf 是浮點特征圖,Wnf 是浮點權重。其本質是 MAC 運算。根據賽靈思的新穎量化感知訓練解決方案,浮點的卷積計算按如下方式進行量化:
1600174626959275.png 

其中 axf、awf 和abf 是標度。這些浮點參數被轉換成2k*2k。這是一種硬件友好型標度,能夠在 FPGA 中使用移位運算輕松實現。
DSP 塊在一個時鐘周期中需要兩個權重和兩個特征。其中的每一個都能共享,如圖 6  所示。

圖片.png 

 
在 W_1 所在的內核里,內核寬 * 內核高 * 通道的全部像素需要與特征相乘,然后加總成一個輸出像素。在同一層,每個權重內核共享同樣的特征圖。兩個被打包的權重需要來自兩個不同的權重內核。每一步中當權重內核滑移到特征圖上時,對應的特征數據就需要與該權重內核相乘。一個 DSP48 塊中的兩個特征應來自同一特征圖里的不同滑動窗口。

 
模型量化與性能仿真

下面的章節講解量化感知訓練中使用的 CV 任務。這些任務包括圖像分類、姿態估計、2D 檢測、3D 檢測、語義分割和多任務。
基準分類模型

在完成 ImageNet 分類數據集上的實驗后得到如下結果。網絡包括 ResNet50-V1、ResNet50-V2。在所有實驗中,數據集均從浮點模型進行微調。所有偏差參數都量化到 8 位。實驗結果如表 1 所列。
1600174781436804.png

基準分類模型的結果參見表 1。它體現了這種方法的有效性。具體對 ResNet50V1 而言,4 位 XDPU 解決方案與 8 位 XDPU 解決方案在前 1 精度上的差距僅有 1.4%,在前 5 精度上的差距僅有 0.9%。

 
實時 ADAS 模型,包括姿態估計、檢測、分割、多任務等。

為進一步驗證量化方法的通用性,也在真實場景下開展了其他 CV 任務。
 

姿態估計


姿態估計任務使用更加復雜的堆疊 Hourglass 網絡[參考資料 14]。通過在 MPII[參考資料 15]數據集上開展姿態估計實驗,評估了逐層模式下兩個網絡結構的精度。結果參見表 2。
1600174845761926.png 


在表 2 中,hg-s2-b1 意味著堆棧數量是 2,塊數量是 1。Hg-s8-b1 意味著堆棧數量是 8,塊數量是 1。表 2 證明賽靈思 量化解決方案實現了可媲美浮點模型的精度。

 
2D 檢測

在 ADAS 系統中,BDD100K[參考資料 16]數據集用于 2D 檢測。此外,FPN 結構被添加到 ResNet18-SSD 中,用作檢測網絡。實驗結果如表 3 所示。
1600174889339751.png 

表 3 所示的是在經過微調后,8 位量化模型實現了高于浮點模型的 mAP。通過逐漸從 8 位微調到 4 位,最終的 4 位量化模型的 mAP 損耗小于 2%。2D 檢測的示意圖如圖 7 所示。

1600174934724530.png 
3D 檢測

ADAS 系統的 3D 檢測任務使用 KITTI 數據集[參考資料 17]。PointPillars[參考資料 18]用于開展 3D 預測任務。實驗結果如表 4 所示。
1600174975886337.png 

如表 4 所示,采用微調技巧后,4 位量化模型的精度僅比浮點模型低 0.16%。8 位和 4 位的 3D 檢測結果如圖 8 所示。
1600175030702232.png 

語義分割

在 ADAS 系統的語義分割任務中,CityScape 的數據集[參考資料 19]以理解城市視覺場景為重點。實驗在以 ResNet18 為基干的特征金字塔網絡 (FPN) 上開展。結果如表 5 所示。
1600175077745344.png
表 5 顯示,8 位模型可實現比浮點模型更高的 mIoU,4 位模型的 mIoU 僅比浮點模型低 1.7%。語義分割的示意圖參見圖 9。

 1600175126313191.png
 
多任務學習

為增強模型的歸納功能和精度,在多任務模型中使用了多個訓練數據集,包括用于檢測的 Waymo 和 BDD100k,以及用于分割的 BDD100k 和 Cityscapes[參考資料 19]。這些研究在以 ResNet18 為基干的特征金字塔網絡 (FPN) 上開展。結果如表 6 所示。
1600175181129544.png
 表 6顯示,8 位量化模型可實現優于浮點模型的 mAP 和與浮點模型保持同等水平的 mIoU。通過逐步微調,與浮點模型相比,最終的 4 位量化模型的 mAP 降低 1.66%,mIoU 提高 1.79%,仍然劣于 8 位模型的表現。多任務示意圖結果如表 10 所示。
圖片.png
競爭分析:8 位與 4 位對比

4 位 XDPU 在下列三種評估板上以 300MHz 頻率運行:Ultra96 與 Zynq UltraScale+ MPSoC ZCU104 和 ZCU102。表 7 所示的是 4 位 XDPU 和 8 位 XDPU 的比較情況。在不同的 FPGA 上,4位 XDPU 實現的性能提升在 1.5 倍到 2.0 倍之間。例如,ZCU102 板使用的硬件資源沒有增加,但性能提高 2 倍。

1600175597903009.png

對于兩個精度不同的加速器,在啟用池化、逐計算元逐深度卷積和平均池化等全部功能后,對資源進行比較。如表 8 中所示,在相同的性能架構下,DSP 和 RAM 的占用顯著下降。鑒于資源耗用下降,4 位 XDPU 架構被擴展到 B8192 的最大規模。使用 B8192 架構能以單器件實現更高性能。

1600175683796527.png

1600175713508320.png


以表 3 中 13.6FLOP 的 2D 檢測模型為例,兩個高精度模型 4/4 和 8/8 分別使用 4 位 XDPU 和 8 位XDPU 進行測試。該網絡的計算要求是 13.6GOP。2D 檢測網絡的幀率如表 9 所示,測試不包含預處理和后處理。鑒于效率和網絡類型的差異,性能和幀率之間不存在線性關系。如表 9 所示,4 位XDPU 的幀率在所有平臺上均優于 8 位 XDPU。

1600175639409931.png


結論

本白皮書介紹了一種運行在 Zynq UltraScale+ MPSoC 和 Zynq-7000 SoC 系列(16nm 和 28nm)器件上的全流程、硬件友好型量化解決方案,可用作 CNN 的低精度加速器。此外,本白皮書也介紹了如何在賽靈思 DSP 片上優化 INT4,從而在一個時鐘周期內完成 4 通道 INT4 相乘。卷積的計算要求可通過打包 DSP 予以滿足。與 INT8 XDPU 解決方案相比,使用 DSP 實現的 INT4 優化在真實硬件上可將處理峰值 GOPS 提升最大 2 倍并將性能最高提升 1.77 倍。這種賽靈思解決方案在各種 CV任務上都獲得了媲美浮點模型的結果。對于資源受限和功耗受限的用例,賽靈思繼續創新軟硬件協同優化方法,為深度學習應用提速。



評論


相關推薦

技術專區

關閉
河北快3一定牛买星