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

          新聞中心

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

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

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

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

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

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

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

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

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

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

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

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

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

          image.png

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

          image.png

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

          image.png

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

          image.png

          圖3 MLP中FP24/FP16乘加單元的簡化結(jié)構(gòu)圖

          image.png

          圖 4 塊浮點(diǎn)乘加單元結(jié)構(gòu)

          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 不同運(yùn)算格式的取值范圍

          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ù)一個(gè)逗號(hào)是為了方便讀數(shù)字,四位數(shù)加一個(gè)小數(shù)點(diǎn)即使萬)

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

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

          如需了解更多產(chǎn)品細(xì)節(jié),請?jiān)L問Achronix網(wǎng)站以獲取產(chǎn)品資料,謝謝閱讀!Achronix官網(wǎng):www.achronix.com。



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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();