通過使用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)積。此向量乘法如下所示:
圖1點(diǎn)積操作
該總和S由每個矢量元素的總和相乘而成,因此


- 配置說明
表1 FP16點(diǎn)積配置表
- 端口說明
表2 FP16點(diǎn)積端口說明表
- 時序圖
圖2 FP16點(diǎn)積時序圖
其中,

- 進(jìn)位鏈
圖3 MLP進(jìn)位鏈
- 乘法階段
圖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ì)算。
圖5 MLP浮點(diǎn)輸出階段框圖
需要強(qiáng)調(diào)的是本設(shè)計(jì)輸入和輸出都是FP16格式,中間計(jì)算過程,即進(jìn)位鏈上的fwdo_out和fwdi_dout 都是FP24格式。具體邏輯框圖如下所示:
圖6 FP16點(diǎn)積邏輯框圖
MLP內(nèi)部數(shù)據(jù)流示意圖:
圖7 FP16點(diǎn)積在MLP內(nèi)部數(shù)據(jù)流圖
最終ACE的時序結(jié)果如下:

審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1643文章
21923瀏覽量
612389 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8481瀏覽量
133877 -
MLP
+關(guān)注
關(guān)注
0文章
57瀏覽量
4449
原文標(biāo)題:詳解FPGA如何實(shí)現(xiàn)FP16格式點(diǎn)積級聯(lián)運(yùn)算
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
RGB888格式的image怎么保存jpg格式?
Optimum Intel / NNCF在重量壓縮中選擇FP16模型的原因?
使用模型優(yōu)化器命令將ONNX模型轉(zhuǎn)換為OpenVINO? IR格式時出現(xiàn)“ReplacementID”錯誤怎么解決?
為什么無法將TensorFlow自定義模型轉(zhuǎn)換為IR格式?
為什么無法使用Dla_compiler在OpenVINO?中編譯用于FPGA的IR模型?
THS8200輸出1080P50/60格式YPbPr視頻時無信號是怎么回事?
TVP5150AM1工作在601格式時,H、V沒有輸出是怎么回事?
MOV格式與MP4格式的區(qū)別
中交興路多式聯(lián)運(yùn)可視與協(xié)同平臺賦能提升物流管控效率
FPGA中的浮點(diǎn)四則運(yùn)算是什么

FPGA中浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過程

請問如何把WAV,MP3格式的音頻文件轉(zhuǎn)化為16位的數(shù)據(jù)IIS格式?
級聯(lián)精密運(yùn)算放大器級以實(shí)現(xiàn)出色的交流和直流性能

評論