新聞中心

        EEPW首頁 > 業界動態 > 實例!詳解FPGA如何實現FP16格式點積級聯運算

        實例!詳解FPGA如何實現FP16格式點積級聯運算

        作者:Achronix資深現場應用工程師,楊宇 時間:2020-08-14 來源:電子產品世界 收藏
        編者按:通過使用Achronix Speedster7t FPGA中的機器學習加速器MLP72,開發人員可以輕松選擇浮點/定點格式和多種位寬,或快速應用塊浮點,并通過內部級聯可以達到理想性能。

        神經網絡架構中的核心之一就是卷積層,卷積的最基本操作就是點積。向量乘法的結果是向量的每個元素的總和相乘在一起,通常稱之為點積。此向量乘法如下所示:

        本文引用地址:http://www.104case.com/article/202008/417088.htm

        image.png

        圖1 點積操作

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

        本文講述的是使用FP16格式的點積運算實例,展示了MLP72支持的數字類型和乘數的范圍。

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

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

        ●   配置說明

        表 1 FP16點積配置表

        image.png

        ●   端口說明

        image.png

        表2 FP16點積端口說明表

        ●   時序圖

        image.png

        圖2 FP16點積時序圖

        其中,

        image.png

        ●   進位鏈

        首先請看下圖,MLP之間的進位鏈結構,這是MLP內部的專用走線,可以保證級聯的高效執行。

        image.png

        圖3 MLP進位鏈

        ●   乘法階段

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

        image.png

        圖4 MLP乘法功能階段框圖

        MLP72浮點乘法級包括兩個24位全浮點乘法器和一個24位全浮點加法器。兩個乘法器執行A×B和C×D的并行計算。加法器將兩個結果相加得到A×B + C×D。

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

        乘法器和加法器使用的數字格式由字節選擇參數以及和參數設置的格式確定。

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

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

        image.png

        圖5 MLP浮點輸出階段框圖

        需要強調的是本設計輸入和輸出都是FP16格式,中間計算過程,即進位鏈上的fwdo_out和fwdi_dout 都是FP24格式。具體邏輯框圖如下所示:

        image.png

        圖 6 FP16點積邏輯框圖

        MLP內部數據流示意圖:

        image.png

        圖7 FP16點積在MLP內部數據流圖

        最終ACE的時序結果如下:

        image.png



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 寻乌县| 宁陵县| 阜新市| 砚山县| 凌云县| 肇源县| 丹凤县| 京山县| 扎鲁特旗| 四会市| 泰州市| 资中县| 焉耆| 土默特右旗| 隆林| 怀仁县| 浙江省| 灵丘县| 徐水县| 武强县| 泰来县| 望江县| 阿拉善左旗| 迁西县| 沙河市| 色达县| 浦城县| 延庆县| 广汉市| 砀山县| 剑川县| 汪清县| 温宿县| 岗巴县| 松溪县| 宜春市| 蓬安县| 绥江县| 黔东| 黄骅市| 崇礼县|