<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 震驚!FPGA運算單元可支持高算力浮點(diǎn)

震驚!FPGA運算單元可支持高算力浮點(diǎn)

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

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

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

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

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

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

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

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

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

而以下的圖4則是塊浮點(diǎn)乘加單元結構。

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

image.png

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

image.png

圖1 定點(diǎn)模式下的MLP框圖

image.png

圖2 浮點(diǎn)模式下的MLP框圖

image.png

圖3 MLP中FP24/FP16乘加單元的簡(jiǎn)化結構圖

image.png

圖 4 塊浮點(diǎn)乘加單元結構

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支持的最大位寬的浮點(diǎn)格式

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器件支持的典型格式的算力對比

(四位數一個(gè)逗號是為了方便讀數字,四位數加一個(gè)小數點(diǎn)即使萬(wàn))

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

表4 MLP中乘法單元的個(gè)數與整數位寬的關(guān)系

如需了解更多產(chǎn)品細節,請訪(fǎng)問(wèn)Achronix網(wǎng)站以獲取產(chǎn)品資料,謝謝閱讀!Achronix官網(wǎng):www.achronix.com。



關(guān)鍵詞: MLP 運算

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>