《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 如何使用一個DSP block實現(xiàn)4個11位浮點型數(shù)據(jù)乘法運算

如何使用一個DSP block實現(xiàn)4個11位浮點型數(shù)據(jù)乘法運算

2018-08-18
關鍵詞: DSPblock INTELFPGA Arria10

  概述

  隨著深度學習的發(fā)展,,為了解決更加抽象,更加復雜的學習問題,,深度學習的網(wǎng)絡規(guī)模在不斷的增加,,計算和數(shù)據(jù)的復雜也隨之劇增。INTEL FPGA具有高性能,,可編程,低功耗等特點,,為AI應用加速提供了一種靈活,、確定的低延遲、高通量,、節(jié)能的解決方案,。Arria10INTELFPGA第一代集成IEEE754標準單精度硬浮點DSP block,可以為高復雜度的深度學習算法提供高精度,,高能效的乘法運算,。

  深度學習算法復雜度高,需要進行大量的乘法運算,,如實現(xiàn)一個卷積核為5*5的特征提取,,需要進行25*25次乘法運算,而隨著特征提取量的增加,,乘法運算也將成倍的增長,。因此乘法器資源是實現(xiàn)深度學習算法的重要評估資源,本文主要介紹如何基于Arria10的一個18*18的乘法器實現(xiàn)兩個11*11的浮點mini-fp運算,,從而4倍提高DSP block資源,。

  原理分析

  Arria10可變精度的DSP Block支持配置為兩個18*18或者18*19定點乘法器,進行18*18乘法運算時,,如圖1所示,,將輸入拆分為低6位,中6位,,高6位,,進行運算分析。

a.png

  圖1 18*18乘法器運算

  則對應的運算結(jié)果如下表所示:

0.png

  將中6位輸入全設為0,則可以得到對應的輸出結(jié)果如下表所示:

4.png

  當高6位及低6位為帶符號位的輸入數(shù)據(jù)時,,進行符號位提取,,則剩余的實際數(shù)據(jù)有效位為5位,因此低6位*高6位及高6位*低6位的乘法結(jié)果最高有效位均為10位,,進行兩個結(jié)果的加法運算,,可以保證結(jié)果在12-23位以內(nèi),不會對高6位*高6位乘法結(jié)果造成影響,。因此Arria1018*18的乘法器支持進行符號位提取后的兩個6*6的乘法運算,,圖2是對應的仿真結(jié)果,乘法結(jié)果對應延時2個時鐘周期,。

1.png

  圖2 modelsim 仿真結(jié)果

  浮點型數(shù)據(jù)如圖3所示,,包含符號位S,指數(shù)位E及尾數(shù)位M,。

2.png

  圖3 浮點型數(shù)據(jù)組合

  進行浮點型數(shù)據(jù)乘法運算,,如圖4所示。

3.png

  圖4 浮點型數(shù)據(jù)乘法

  需要進行指數(shù)相加,,尾數(shù)相乘,,乘法結(jié)果取整及指數(shù)的調(diào)整。11位的浮點型數(shù)據(jù)尾數(shù)及指數(shù)各占5位,,因此進行乘法運算僅需要進行包含符號位6位的數(shù)據(jù)相乘及對應的處理即可,。Arria10的DSPblock可支持配置為2個18*18乘法器,而一個18*18的乘法器可以實現(xiàn)兩個6*6的乘法運算,,因此一個DSPblock可以實現(xiàn)4個11位浮點型數(shù)據(jù)mini-FP的乘法運算,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。