<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          接上期http://www.ex-cimer.com/article/202009/418351.htm

          本文引用地址:http://www.ex-cimer.com/article/202009/418352.htm

          DSP 片上的 優(yōu)化


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

          圖片.png

          圖 3:MAC 模式下的 DSP48E2 片


           
          優(yōu)化

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

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

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

           
          DSP 強化使用

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

           

          面向 CNN 要求的計算圖

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

          1600174580409334.png


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

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

          圖片.png 

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

           
          模型量化與性能仿真

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

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

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

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

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

          姿態(tài)估計


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


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

           
          2D 檢測

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

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

          1600174934724530.png 
          3D 檢測

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

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

          語義分割

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

           1600175126313191.png
           
          多任務學習

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

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

          1600175597903009.png

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

          1600175683796527.png

          1600175713508320.png


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

          1600175639409931.png


          結論

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



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();