新聞中心

EEPW首頁 > 智能計(jì)算 > 牛人業(yè)話 > 賽靈思器件上的 INT4 優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)(2)

賽靈思器件上的 INT4 優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)(2)

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

接上期http://www.butianyuan.cn/article/202009/418351.htm

本文引用地址:http://www.butianyuan.cn/article/202009/418352.htm

DSP 片上的 優(yōu)化


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

圖片.png

圖 3:MAC 模式下的 DSP48E2 片


 
優(yōu)化

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

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

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

 
DSP 強(qiáng)化使用

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

 

面向 CNN 要求的計(jì)算圖

卷積是 CNN 網(wǎng)絡(luò)的主要計(jì)算要求。卷積的實(shí)際計(jì)算任務(wù)如下:

1600174580409334.png


其中Anf 是浮點(diǎn)特征圖,Wnf 是浮點(diǎn)權(quán)重。其本質(zhì)是 MAC 運(yùn)算。根據(jù)賽靈思的新穎量化感知訓(xùn)練解決方案,浮點(diǎn)的卷積計(jì)算按如下方式進(jìn)行量化:
1600174626959275.png 

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

圖片.png 

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

 
模型量化與性能仿真

下面的章節(jié)講解量化感知訓(xùn)練中使用的 CV 任務(wù)。這些任務(wù)包括圖像分類、姿態(tài)估計(jì)、2D 檢測、3D 檢測、語義分割和多任務(wù)。
基準(zhǔn)分類模型

在完成 ImageNet 分類數(shù)據(jù)集上的實(shí)驗(yàn)后得到如下結(jié)果。網(wǎng)絡(luò)包括 ResNet50-V1、ResNet50-V2。在所有實(shí)驗(yàn)中,數(shù)據(jù)集均從浮點(diǎn)模型進(jìn)行微調(diào)。所有偏差參數(shù)都量化到 8 位。實(shí)驗(yàn)結(jié)果如表 1 所列。
1600174781436804.png

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

 
實(shí)時 ADAS 模型,包括姿態(tài)估計(jì)、檢測、分割、多任務(wù)等。

為進(jìn)一步驗(yàn)證量化方法的通用性,也在真實(shí)場景下開展了其他 CV 任務(wù)。
 

姿態(tài)估計(jì)


姿態(tài)估計(jì)任務(wù)使用更加復(fù)雜的堆疊 Hourglass 網(wǎng)絡(luò)[參考資料 14]。通過在 MPII[參考資料 15]數(shù)據(jù)集上開展姿態(tài)估計(jì)實(shí)驗(yàn),評估了逐層模式下兩個網(wǎng)絡(luò)結(jié)構(gòu)的精度。結(jié)果參見表 2。
1600174845761926.png 


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

 
2D 檢測

在 ADAS 系統(tǒng)中,BDD100K[參考資料 16]數(shù)據(jù)集用于 2D 檢測。此外,F(xiàn)PN 結(jié)構(gòu)被添加到 ResNet18-SSD 中,用作檢測網(wǎng)絡(luò)。實(shí)驗(yàn)結(jié)果如表 3 所示。
1600174889339751.png 

表 3 所示的是在經(jīng)過微調(diào)后,8 位量化模型實(shí)現(xiàn)了高于浮點(diǎn)模型的 mAP。通過逐漸從 8 位微調(diào)到 4 位,最終的 4 位量化模型的 mAP 損耗小于 2%。2D 檢測的示意圖如圖 7 所示。

1600174934724530.png 
3D 檢測

ADAS 系統(tǒng)的 3D 檢測任務(wù)使用 KITTI 數(shù)據(jù)集[參考資料 17]。PointPillars[參考資料 18]用于開展 3D 預(yù)測任務(wù)。實(shí)驗(yàn)結(jié)果如表 4 所示。
1600174975886337.png 

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

語義分割

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

 1600175126313191.png
 
多任務(wù)學(xué)習(xí)

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

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

1600175597903009.png

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

1600175683796527.png

1600175713508320.png


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

1600175639409931.png


結(jié)論

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉