我正在为一块网络中间件编写一些代码。现在,我们的代码运行得太慢了。
我们已经完成了一轮重写和优化,但我们似乎在软件方面遇到了很多限制。
代码的缓慢源于一个子程序 - 来自计算统计的深奥抽样算法。因为所涉及的数学有点类似于在DSP中完成的工作,所以我想知道我们是否可以使用FPGA来加速计算。
我的问题基本上在标题中 - 如何判断FPGA(甚至ASIC)是否会在我的用例中提供有用的加速?
编辑:A'有用'加速是足以证明构建FPGA所需的成本和开发时间的重要因素。
答案 0 :(得分:5)
简短的回答是让经验丰富的FPGA工程师查看算法并告诉您解决方案的开发时间和材料清单成本需要多少。
在不知道算法细节的情况下,更难猜测。这个问题的可并行性如何?或者它可以大量流水线?需要多少次乘法/累加/ dsp操作?你能用一个大查找表或其他FPGA dsp技术(CORDIC)来估计一些计算。 FPGA可以并行(每个时钟周期)100s甚至1000s执行许多这样的操作,具体取决于您愿意花多少钱在FPGA上。在不了解细节的情况下,让经验丰富的FPGA / DSP工程师看看问题,但是很难获得真实的感觉。
其他一些选择是: