1. 程式人生 > >【DATE2017】Double MAC: Doubling the Performance of Convolutional Neural Networks on Modern FPGAs

【DATE2017】Double MAC: Doubling the Performance of Convolutional Neural Networks on Modern FPGAs

-1 資源 font 文章 討論 要點 兩個 需要 分享

這篇文章介紹了如何利用FPGA內部單個DSP來實現SIMD乘法,從而提高DSP利用率,緩解計算資源不足的問題,是一個比較實用的trick。

要點:

  1. 利用單個DSP並行實現兩次乘法:A*C、B*C;
  2. 文中只討論了A、B、C具有相同bitwidth的情況。假設A、B、C均為nbit,那麽將A與B拼成一個數之後的乘法變為(3n+1)*n;
  3. 乘數C只能是unsigned類型,而兩個被乘數A和B可以是signed或者unsigned,但文中只討論了A和B具有相同符號的情況;
  4. 對於unsigned乘法可以直接得到結果,而signed乘法略復雜一點兒,需要額外修正乘法的結果。

(1)unsigned乘法原理圖:

技術分享

(2)signed乘法原理圖:

技術分享

修正原理:

技術分享

原文地址:http://ieeexplore.ieee.org/document/7927113/

【DATE2017】Double MAC: Doubling the Performance of Convolutional Neural Networks on Modern FPGAs