在我正在写的一个C++ CPU绑定仿真中,我通过我的程序中的valgrind将瓶颈追溯到cmath::exp
。目前它的仿真时间超过40%。我可以将输入绑定到一个相对较小的域,但我想控制精度。我正在考虑移动到LUT(查找表)来取代exp
,但我不太清楚如何做到这一点“正确的方式”(TM)。关注我:C++ exp LUT(查找表)
- 大型查找表将不适合在高速缓存从而减缓获得了双输入转换为整数接入到查找表中
- 最佳方式是否答案(2 )取决于输入函数的斜率?
- 我重新发明了车轮 - 这已经做过吗?
实现/(包括从库中)LUT为exp
的最佳方式是什么?
什么是您需要处理的域? – 2012-07-25 20:50:57
@AlanStokes'exp(x)'其中'x = [-k ... -1]','k> 1'和'k'只在运行时是已知的(因此推测每次都需要重建LUT该程序运行(这是好的,因为模拟时间可能需要几天))。 – Hooked 2012-07-25 20:56:35
您的计算代码的一小部分可能对我们有用。这是一种“主循环”,还是一种非常复杂且难以适应单个SO帖子的事情? – 2012-07-25 21:12:06