<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

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

    發布時間:2020-08-13 責任編輯:lina

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

    關閉

    ?

    關閉

    久久久久亚洲精品中文字幕| 无码精品人妻一区二区三区免费看| 人妻aⅴ无码一区二区三区| 91视频中文字幕| 亚洲精品无码专区2| 国产三级无码内射在线看| 一本一道AV无码中文字幕| 狠狠干中文字幕| 亚洲欧美精品一中文字幕| 精品久久久无码中文字幕天天| 亚洲精品无码MV在线观看| 日韩精品无码人成视频手机| 最近2019中文字幕| 精选观看中文字幕高清无码| 无码人妻久久一区二区三区| 成人午夜福利免费无码视频| 国产中文字幕在线| 久久精品中文字幕久久| 日韩乱码人妻无码系列中文字幕| 最新中文字幕AV无码不卡| 无码精品前田一区二区| 性无码专区一色吊丝中文字幕| AV无码久久久久不卡网站下载| 国产50部艳色禁片无码| 97性无码区免费| 人妻丰满?V无码久久不卡| 久久亚洲AV永久无码精品| 人妻少妇无码视频在线| 亚洲午夜无码久久久久小说| 无码人妻精品一区二区三区99不卡 | 中文字幕日韩一区二区三区不卡| 好看的中文字幕二区高清在线观看| 波多野结衣中文字幕久久| 一本久中文视频播放| 最近中文字幕mv免费高清在线| 亚洲欧美成人久久综合中文网 | 中文字幕日韩欧美| 免费无码黄网站在线看| 亚洲AV无码专区亚洲AV伊甸园| 日韩精品无码免费一区二区三区| 成年午夜无码av片在线观看|