色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 業(yè)界動態(tài) > 實(shí)例!詳解FPGA如何實(shí)現(xiàn)FP16格式點(diǎn)積級聯(lián)運(yùn)算

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

          作者:Achronix資深現(xiàn)場應(yīng)用工程師,楊宇 時間:2020-08-14 來源:電子產(chǎn)品世界 收藏
          編者按:通過使用Achronix Speedster7t FPGA中的機(jī)器學(xué)習(xí)加速器MLP72,開發(fā)人員可以輕松選擇浮點(diǎn)/定點(diǎn)格式和多種位寬,或快速應(yīng)用塊浮點(diǎn),并通過內(nèi)部級聯(lián)可以達(dá)到理想性能。

          神經(jīng)網(wǎng)絡(luò)架構(gòu)中的核心之一就是卷積層,卷積的最基本操作就是點(diǎn)積。向量乘法的結(jié)果是向量的每個元素的總和相乘在一起,通常稱之為點(diǎn)積。此向量乘法如下所示:

          本文引用地址:http://cafeforensic.com/article/202008/417088.htm

          image.png

          圖1 點(diǎn)積操作

          該總和S由每個矢量元素的總和相乘而成,因此S=a1b1+a2b2+a3b3+···anbn

          本文講述的是使用FP16格式的點(diǎn)積運(yùn)算實(shí)例,展示了MLP72支持的數(shù)字類型和乘數(shù)的范圍。

          此設(shè)計(jì)實(shí)現(xiàn)了同時處理8對FP16輸入的點(diǎn)積。該設(shè)計(jì)包含四個MLP72,使用MLP內(nèi)部的級聯(lián)路徑連接。每個MLP72將兩個并行乘法的結(jié)果相加(即aibi+ai+ai+1bi+1),每個乘法都是i_a輸入乘以i_b輸入(均為FP16格式)的結(jié)果。來自每個MLP72的總和沿著MLP72的列級聯(lián)到上面的下一個MLP72塊。在最后一個MLP72中,在每個周期上,計(jì)算八個并行FP16乘法的總和。

          最終結(jié)果是多個輸入周期內(nèi)的累加總和,其中累加由i_first和i_last輸入控制。 i_first輸入信號指示累加和歸零的第一組輸入。 i_last信號指示要累加和加到累加的最后一組輸入。最終的i_last值可在之后的六個周期使用,并使用i_last o_valid進(jìn)行限定。兩次運(yùn)算之間可以無空拍。

          ●   配置說明

          表 1 FP16點(diǎn)積配置表

          image.png

          ●   端口說明

          image.png

          表2 FP16點(diǎn)積端口說明表

          ●   時序圖

          image.png

          圖2 FP16點(diǎn)積時序圖

          其中,

          image.png

          ●   進(jìn)位鏈

          首先請看下圖,MLP之間的進(jìn)位鏈結(jié)構(gòu),這是MLP內(nèi)部的專用走線,可以保證級聯(lián)的高效執(zhí)行。

          image.png

          圖3 MLP進(jìn)位鏈

          ●   乘法階段

          下圖是MLP中浮點(diǎn)乘法功能階段,其中寄存器代表一級可選延遲。

          image.png

          圖4 MLP乘法功能階段框圖

          MLP72浮點(diǎn)乘法級包括兩個24位全浮點(diǎn)乘法器和一個24位全浮點(diǎn)加法器。兩個乘法器執(zhí)行A×B和C×D的并行計(jì)算。加法器將兩個結(jié)果相加得到A×B + C×D。

          乘法階段有兩個輸出。下半部分輸出可以在A×B或(A×B + C×D)之間選擇。上半部分輸出始終為C×D。

          乘法器和加法器使用的數(shù)字格式由字節(jié)選擇參數(shù)以及和參數(shù)設(shè)置的格式確定。

          浮點(diǎn)輸出具有與整數(shù)輸出級相同的路徑和結(jié)構(gòu)。MLP72可以配置為在特定階段選擇整數(shù)或等效浮點(diǎn)輸入。輸出支持兩個24位全浮點(diǎn)加法器,可以對其進(jìn)行加法或累加配置。 進(jìn)一步可以加載加法器(開始累加),可以將其設(shè)置為減法,并支持可選的舍入模式。

          最終輸出階段支持將浮點(diǎn)輸出格式化為MLP72支持的三種浮點(diǎn)格式中的任何一種。 此功能使MLP72可以外部支持大小一致的浮點(diǎn)輸入和輸出(例如fp16或bfloat16),而在內(nèi)部以fp24執(zhí)行所有計(jì)算。

          image.png

          圖5 MLP浮點(diǎn)輸出階段框圖

          需要強(qiáng)調(diào)的是本設(shè)計(jì)輸入和輸出都是FP16格式,中間計(jì)算過程,即進(jìn)位鏈上的fwdo_out和fwdi_dout 都是FP24格式。具體邏輯框圖如下所示:

          image.png

          圖 6 FP16點(diǎn)積邏輯框圖

          MLP內(nèi)部數(shù)據(jù)流示意圖:

          image.png

          圖7 FP16點(diǎn)積在MLP內(nèi)部數(shù)據(jù)流圖

          最終ACE的時序結(jié)果如下:

          image.png



          關(guān)鍵詞:

          評論


          相關(guān)推薦

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

          關(guān)閉