<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 測試測量 > 正文

詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算

發(fā)布時(shí)間:2020-08-13 責任編輯:lina

【導讀】通過(guò)使用Achronix Speedster7t FPGA中的機器學(xué)習加速器MLP72,開(kāi)發(fā)人員可以輕松選擇浮點(diǎn)/定點(diǎn)格式和多種位寬,或快速應用塊浮點(diǎn),并通過(guò)內部級聯(lián)可以達到理想性能。
 
通過(guò)使用Achronix Speedster7t FPGA中的機器學(xué)習加速器MLP72,開(kāi)發(fā)人員可以輕松選擇浮點(diǎn)/定點(diǎn)格式和多種位寬,或快速應用塊浮點(diǎn),并通過(guò)內部級聯(lián)可以達到理想性能。
 
神經(jīng)網(wǎng)絡(luò )架構中的核心之一就是卷積層,卷積的最基本操作就是點(diǎn)積。向量乘法的結果是向量的每個(gè)元素的總和相乘在一起,通常稱(chēng)之為點(diǎn)積。此向量乘法如下所示:
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖1點(diǎn)積操作
 
該總和S由每個(gè)矢量元素的總和相乘而成,因此
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
 
本文講述的是使用FP16格式的點(diǎn)積運算實(shí)例,展示了MLP72支持的數字類(lèi)型和乘數的范圍。
 
此設計實(shí)現了同時(shí)處理8對FP16輸入的點(diǎn)積。該設計包含四個(gè)MLP72,使用MLP內部的級聯(lián)路徑連接。每個(gè)MLP72將兩個(gè)并行乘法的結果相加詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算,每個(gè)乘法都是i_a輸入乘以i_b輸入(均為FP16格式)的結果。來(lái)自每個(gè)MLP72的總和沿著(zhù)MLP72的列級聯(lián)到上面的下一個(gè)MLP72塊。在最后一個(gè)MLP72中,在每個(gè)周期上,計算八個(gè)并行FP16乘法的總和。
 
最終結果是多個(gè)輸入周期內的累加總和,其中累加由i_first和i_last輸入控制。i_first輸入信號指示累加和歸零的第一組輸入。i_last信號指示要累加和加到累加的最后一組輸入。最終的i_last值可在之后的六個(gè)周期使用,并使用i_last o_valid進(jìn)行限定。兩次運算之間可以無(wú)空拍。
 
配置說(shuō)明
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
表1 FP16點(diǎn)積配置表
 
端口說(shuō)明
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
表2 FP16點(diǎn)積端口說(shuō)明表
 
時(shí)序圖
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖2 FP16點(diǎn)積時(shí)序圖
 
其中,
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
 
那么,以上運算功能如何對應到MLP內部呢?其后的細節已分為MLP72中的多個(gè)功能階段進(jìn)行說(shuō)明。
 
進(jìn)位鏈
 
首先請看下圖,MLP之間的進(jìn)位鏈結構,這是MLP內部的專(zhuān)用走線(xiàn),可以保證級聯(lián)的高效執行。
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖3 MLP進(jìn)位鏈
 
乘法階段
 
下圖是MLP中浮點(diǎn)乘法功能階段,其中寄存器代表一級可選延遲。
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖4 MLP乘法功能階段框圖
 
MLP72浮點(diǎn)乘法級包括兩個(gè)24位全浮點(diǎn)乘法器和一個(gè)24位全浮點(diǎn)加法器。兩個(gè)乘法器執行A×B和C×D的并行計算。加法器將兩個(gè)結果相加得到A×B + C×D。
 
乘法階段有兩個(gè)輸出。下半部分輸出可以在A(yíng)×B或(A×B + C×D)之間選擇。上半部分輸出始終為C×D。
 
乘法器和加法器使用的數字格式由字節選擇參數以及和參數設置的格式確定。
 
浮點(diǎn)輸出具有與整數輸出級相同的路徑和結構。MLP72可以配置為在特定階段選擇整數或等效浮點(diǎn)輸入。輸出支持兩個(gè)24位全浮點(diǎn)加法器,可以對其進(jìn)行加法或累加配置。進(jìn)一步可以加載加法器(開(kāi)始累加),可以將其設置為減法,并支持可選的舍入模式。
 
最終輸出階段支持將浮點(diǎn)輸出格式化為MLP72支持的三種浮點(diǎn)格式中的任何一種。此功能使MLP72可以外部支持大小一致的浮點(diǎn)輸入和輸出(例如fp16或bfloat16),而在內部以fp24執行所有計算。
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖5 MLP浮點(diǎn)輸出階段框圖
 
需要強調的是本設計輸入和輸出都是FP16格式,中間計算過(guò)程,即進(jìn)位鏈上的fwdo_out和fwdi_dout 都是FP24格式。具體邏輯框圖如下所示:
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖6 FP16點(diǎn)積邏輯框圖
 
MLP內部數據流示意圖:
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
圖7 FP16點(diǎn)積在MLP內部數據流圖
 
最終ACE的時(shí)序結果如下:
 
詳解FPGA如何實(shí)現FP16格式點(diǎn)積級聯(lián)運算
 
(來(lái)源:Achronix,作者:楊宇,Achronix資深現場(chǎng)應用工程師)
 
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請電話(huà)或者郵箱聯(lián)系小編進(jìn)行侵刪。
 
  
推薦閱讀:
電容ESR測量表電路
貿澤電子推出Microchip和Vishay電阻式電流傳感解決方案網(wǎng)站
如何通過(guò)可變增益放大器LMH6505實(shí)現AGC電路設計?
什么?!4mA至20mA電流環(huán)路的誤差小于0.2%?!
開(kāi)環(huán)電流傳感器與閉環(huán)電流傳感器的區別分析
要采購傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>