新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 震驚!FPGA運算單元可支持高算力浮點

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

—— Achronix創(chuàng)新的機器學習處理器(MLP)突破傳統(tǒng)FPGA運算瓶頸 - -
作者:Achronix資深現(xiàn)場應用工程師,楊宇 時間:2020-03-03 來源:電子產品世界 收藏

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

本文引用地址:http://2s4d.com/article/202003/410540.htm

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

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

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

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

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

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

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

這里考慮浮點數(shù)序列塊,浮點數(shù)序列塊,各序列塊內均擁有相同的指數(shù)ea和eb。則(如下圖)

image.png

不難看出,乘法單元的個數(shù)取決于尾數(shù)(即整數(shù))位寬。

image.png

圖1 定點模式下的MLP框圖

image.png

圖2 浮點模式下的MLP框圖

image.png

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

image.png

圖 4 塊浮點乘加單元結構

FormatFP SizeFP Exponent SizePrecisionMLP NameAlternative Names
fp2424816FP24
fp1616511FP16binary 16,half precision
bf161688BFLOAT16

bfloat 15.(brain float)

Not to be confused with

block floating point.

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

image.png

FormatBiasExp for infMinimum PositiveMaximum Positive
fp241272552(-126)2128 - 2112
fp1615312(-14)216 - 25=65504
bf16
1272552(-126)2128 - 2120

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

Data TypeMatissa SizeExponent

Multipliers

/MLP

MLP Perf.

(GOPS)

int 33n/a3212,2880
int 44n/a3212,2880
int 66n/a166,1440
int 88n/a166,1440
int 1616n/a41,5360
bfloat 168+hidden bit827680
fp 1612+hidden bit527680
block float 33up to 83212,2880
block float 44up to 83212,2880
block float 66up to 8166,1440
block float 88up to 8166,1440
block float 1212up to 841,5360
block float 1616up to 841,5360
fp 24(8e)15+hidden bit827680

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

(四位數(shù)一個逗號是為了方便讀數(shù)字,四位數(shù)加一個小數(shù)點即使萬)

int sizemult per blockmult per MLPint format
3、41632signed magnitude
6、7、8816signed magnitude
16242's complement

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

如需了解更多產品細節(jié),請訪問Achronix網站以獲取產品資料,謝謝閱讀!Achronix官網:www.achronix.com。



關鍵詞: MLP 運算

評論


相關推薦

技術專區(qū)

關閉