隨著機(jī)器學(xué)習(xí)(Machine Learning)領(lǐng)域越來越多地使用現(xiàn)場(chǎng)可編程門陣列(FPGA)來進(jìn)行推理(inference)加速,而傳統(tǒng)FPGA只支持定點(diǎn)運(yùn)算的瓶頸越發(fā)凸顯。Achronix為了解決這一大困境,創(chuàng)新地設(shè)計(jì)了機(jī)器學(xué)習(xí)處理器(MLP)單元,不僅支持浮點(diǎn)的乘加運(yùn)算,還可以支持對(duì)多種定浮點(diǎn)數(shù)格式進(jìn)行拆分。
MLP全稱Machine Learning Processing單元,是由一組至多32個(gè)乘法器的陣列,以及一個(gè)加法樹、累加器、還有四舍五入rounding/飽和saturation/歸一化normalize功能塊。同時(shí)還包括2個(gè)緩存,分別是一個(gè)BRAM72k和LRAM2k,用于獨(dú)立或結(jié)合乘法器使用。MLP支持定點(diǎn)模式和浮點(diǎn)模式。
考慮到運(yùn)算能耗和準(zhǔn)確度的折衷,目前機(jī)器學(xué)習(xí)引擎中最常使用的運(yùn)算格式是FP16和INT8,而Tensor Flow支持的BF16則是通過降低精度,來獲得更大數(shù)值空間。
而且這似乎也成為未來的一種趨勢(shì)。目前已經(jīng)有不少研究表明,更小位寬的浮點(diǎn)或整型可以在保證正確率的同時(shí),還可以減少大量的計(jì)算量。因此,為了順應(yīng)這一潮流,MLP還支持將大位寬乘法單元拆分成多個(gè)小位寬乘法,包括整數(shù)和浮點(diǎn)數(shù)。
值得注意的是,這里的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)可以使這些格式下的算力倍增。
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個(gè)在看你最好看
原文標(biāo)題:FPGA運(yùn)算單元對(duì)高算力浮點(diǎn)應(yīng)用
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598886
原文標(biāo)題:FPGA運(yùn)算單元對(duì)高算力浮點(diǎn)應(yīng)用
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論