通過使用Achronix Speedster7t FPGA中的機器學習加速器MLP72,開發人員可以輕松選擇浮點/定點格式和多種位寬,或快速應用塊浮點,并通過內部級聯可以達到理想性能。
神經網絡架構中的核心之一就是卷積層,卷積的最基本操作就是點積。向量乘法的結果是向量的每個元素的總和相乘在一起,通常稱之為點積。此向量乘法如下所示:
圖1點積操作
該總和S由每個矢量元素的總和相乘而成,因此 ?本文講述的是使用FP16格式的點積運算實例,展示了MLP72支持的數字類型和乘數的范圍。 此設計實現了同時處理8對FP16輸入的點積。該設計包含四個MLP72,使用MLP內部的級聯路徑連接。每個MLP72將兩個并行乘法的結果相加,每個乘法都是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點積配置表
- 端口說明
表2 FP16點積端口說明表
- 時序圖
圖2 FP16點積時序圖
其中, ?那么,以上運算功能如何對應到MLP內部呢?其后的細節已分為MLP72中的多個功能階段進行說明。
- 進位鏈
圖3 MLP進位鏈
- 乘法階段
圖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執行所有計算。
圖5 MLP浮點輸出階段框圖
需要強調的是本設計輸入和輸出都是FP16格式,中間計算過程,即進位鏈上的fwdo_out和fwdi_dout 都是FP24格式。具體邏輯框圖如下所示:
圖6 FP16點積邏輯框圖
MLP內部數據流示意圖:
圖7 FP16點積在MLP內部數據流圖
最終ACE的時序結果如下:
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602998 -
機器學習
+關注
關注
66文章
8406瀏覽量
132563 -
MLP
+關注
關注
0文章
57瀏覽量
4241
原文標題:詳解FPGA如何實現FP16格式點積級聯運算
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
MOV格式與MP4格式的區別
MOV格式與MP4格式在多個方面存在顯著的區別。以下是對這兩種視頻格式的比較: 一、開發背景與用途 MOV格式 : 開發背景:MOV格式是A
中交興路多式聯運可視與協同平臺賦能提升物流管控效率
聯運已成為我國供應鏈體系的關鍵組成部分,也是物流產業科技創新發展的重要領域。 三大堵點 制約多式聯運規模化普及 多式
FPGA中的浮點四則運算是什么
由于定點的四則運算比較簡單,如加減法只要注意符號擴展,小數點對齊等問題即可。在本文中,運用在前一節中描述的自定義浮點格式FPGA中數的表示方法(下),完成浮點四則運算的
FPGA中浮點四則運算的實現過程
由于定點的四則運算比較簡單,如加減法只要注意符號擴展,小數點對齊等問題即可。在本文中,運用在前一節中描述的自定義浮點格式FPGA中數的表示方法(下),完成浮點四則運算的
使用rgb888格式,在清屏切換時會有雜亂的條紋出現是怎么回事?
使用rgb888格式,在清屏切換時,屏幕會有雜亂的條紋出現?
但是使用 ARGB8888, RGB565的格式時貌似木有,是怎么個情況 ???
發表于 05-08 06:09
求助,請問12位傳感器數據如何變成YUY2格式?
請教下傳感器輸出的12位并行數據RAW通過FPGA采集出來,然后要轉成YUY2格式通過GPIF接口傳給FX3,再通過USB顯示實時圖像視頻。現在問題是12位傳感器數據如何變成YUY2格式?通過slaveFIFO時序
發表于 02-28 07:25
評論