在我正在编写的受 C++ CPU 限制的模拟中,我通过程序中的 valgrind 将瓶颈跟踪到cmath::exp
. 它目前占用了我 40% 以上的模拟时间。我可以将输入绑定到一个相对较小的域,但我想控制准确性。我正在考虑转移到 LUT(查找表)来替换exp
,但我不太确定如何以“正确的方式”(tm)做到这一点。我的担忧:
- 大型查找表将不适合缓存,从而减慢访问速度
- 将双精度输入转换为整数以访问查找表的最佳方法
- (2) 的答案是否取决于输入函数的斜率?
- 我是在重新发明轮子吗?以前已经做过了吗?
实现/(从库中包含)LUT 的最佳方法是什么exp
?