《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 震驚!FPGA運算單元可支持高算力浮點

震驚!FPGA運算單元可支持高算力浮點

Achronix創(chuàng)新的機器學習處理器(MLP)突破傳統(tǒng)FPGA運算瓶頸
2020-03-03
來源:Achronix

  隨著機器學習(Machine Learning)領域越來越多地使用現(xiàn)場可編程門陣列(FPGA)來進行推理(inference)加速,而傳統(tǒng)FPGA只支持定點運算的瓶頸越發(fā)凸顯。 Achronix為了解決這一大困境,創(chuàng)新地設計了機器學習處理器(MLP)單元,不僅支持浮點的乘加運算,還可以支持對多種定浮點數(shù)格式進行拆分。

  MLP全稱Machine Learning Processing單元,是由一組至多32個乘法器的陣列,以及一個加法樹、累加器、還有四舍五入rounding/飽和saturation/歸一化normalize功能塊。同時還包括2個緩存,分別是一個BRAM72k和LRAM2k,用于獨立或結合乘法器使用。MLP支持定點模式和浮點模式,對應下面圖1和圖2。

圖片1.png

  圖1 定點模式下的MLP框圖

圖片2.png

  圖2 浮點模式下的MLP框圖

  考慮到運算能耗和準確度的折衷,目前機器學習引擎中最常使用的運算格式是FP16和INT8,而Tensor Flow支持的BF16則是通過降低精度,來獲得更大數(shù)值空間。下面的表1是MLP支持的最大位寬的浮點格式,表2說明了各自的取值范圍。

圖片5.png

  表1 MLP支持的最大位寬的浮點格式

圖片6.png

  表2 不同運算格式的取值范圍

  而且這似乎也成為未來的一種趨勢。目前已經(jīng)有不少研究表明,更小位寬的浮點或整型可以在保證正確率的同時,還可以減少大量的計算量。因此,為了順應這一潮流,MLP還支持將大位寬乘法單元拆分成多個小位寬乘法,包括整數(shù)和浮點數(shù)。詳見下表3。

  值得注意的是,這里的bfloat16即Brain Float格式,而block float為塊浮點算法,即當應用Block Float16及更低位寬塊浮點格式時,指數(shù)位寬不變,小數(shù)位縮減到了16bit以內(nèi),因此浮點加法位寬變小,并且不需要使用浮點乘法單元,而是整數(shù)乘法和加法樹即可,MLP的架構可以使這些格式下的算力倍增。

  表3是Speedster7t系列1500器件所支持的典型格式下的算力對比,可以看到,單片F(xiàn)PGA的浮點算力最高可達到123TOPS。

圖片7.png

  表3 Achronix的Speedster7t系列1500器件支持的典型格式的算力對比

  下圖3是MLP中FP24/FP16乘加單元的簡化結構圖,即一個MLP支持FP24/FP16的A*B+C*D,或者A*B,C*D。

圖片3.png

  圖3 MLP中FP24/FP16乘加單元的簡化結構圖

  而以下的圖4則是塊浮點乘加單元結構。

圖片4.png

  圖 4 塊浮點乘加單元結構

  這里考慮浮點數(shù)序列塊,浮點數(shù)序列塊,各序列塊內(nèi)均擁有相同的指數(shù)ea和eb。則不難看出,乘法單元的個數(shù)取決于尾數(shù)(即整數(shù))位寬。

圖片8.png

  表4 MLP中乘法單元的個數(shù)與整數(shù)位寬的關系

  如需了解更多產(chǎn)品細節(jié),請訪問Achronix網(wǎng)站以獲取產(chǎn)品資料,謝謝閱讀!


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。