Optimization FPGA在这里有用吗?
我正在为一个网络中间件编写一些代码。现在,我们的代码运行得太慢了 我们已经做了一轮的重写和优化,但我们似乎在软件中所能做的事情上遇到了困难 代码的缓慢性源于一个子例程——一种来自计算统计学的深奥的采样算法。因为所涉及的数学有点类似于在DSP中完成的工作,我想知道我们是否可以使用FPGA来加速计算 我的问题基本上在标题中-如何判断FPGA(甚至ASIC)在我的用例中是否会提供有用的加速Optimization FPGA在这里有用吗?,optimization,fpga,Optimization,Fpga,我正在为一个网络中间件编写一些代码。现在,我们的代码运行得太慢了 我们已经做了一轮的重写和优化,但我们似乎在软件中所能做的事情上遇到了困难 代码的缓慢性源于一个子例程——一种来自计算统计学的深奥的采样算法。因为所涉及的数学有点类似于在DSP中完成的工作,我想知道我们是否可以使用FPGA来加速计算 我的问题基本上在标题中-如何判断FPGA(甚至ASIC)在我的用例中是否会提供有用的加速 编辑:“有用的”加速是指足以证明构建FPGA所需的成本和开发时间的重要加速。简单的回答是让经验丰富的FPGA工程
编辑:“有用的”加速是指足以证明构建FPGA所需的成本和开发时间的重要加速。简单的回答是让经验丰富的FPGA工程师查看算法,并告诉您解决方案的开发时间和物料清单成本 如果不知道算法的细节,就很难猜测。问题是如何并行化的?或者它可以被大量管道化?需要多少乘法/累加/dsp操作?您可以使用大查找表或其他FPGA dsp技术(CORDIC)进行近似计算吗。FPGA可以在100秒甚至1000秒的时间内(每个时钟周期)并行执行许多、更多的操作,这取决于您愿意在FPGA上花费多少。如果不知道细节,也没有经验丰富的FPGA/DSP工程师来研究这个问题,就很难有真正的感觉 其他一些选择包括:
- 看看DSP芯片(TI DSP芯片就是一个例子)
- 您的处理器是否有未使用的SIMD指令
- 看看DSP芯片(TI DSP芯片就是一个例子)
- 您的处理器是否有未使用的SIMD指令