这篇文章介绍了如何利用FPGA内部单个DSP来实现SIMD乘法,从而提高DSP利用率,缓解计算资源不足的问题,是一个比较实用的trick。
要点:
- 利用单个DSP并行实现两次乘法:A*C、B*C;
- 文中只讨论了A、B、C具有相同bitwidth的情况。假设A、B、C均为nbit,那么将A与B拼成一个数之后的乘法变为(3n+1)*n;
- 乘数C只能是unsigned类型,而两个被乘数A和B可以是signed或者unsigned,但文中只讨论了A和B具有相同符号的情况;
- 对于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
原文地址:http://www.cnblogs.com/ghdgl/p/7525796.html