我目前正在使用英特尔的MKL 2D FFT例程。
我遇到了性能变化4-5的情况。
我正在做的是使用FFT库实现一种带通滤波器。测试结果是正确的,但速度是一个问题。
我所看到的是正向FFT大约1.3秒,反向FFT大约1.3到6秒。
我已将此跟踪到我在FFT正向传递后应用的权重。 权重介于0和-1之间,当我得到6秒时,大多为0。 如果我在应用之前将权重设置为1则为1.3秒。其他测试表明这种行为不使用权重1。
我的问题是我应用的值如何导致这种减速?我可以理解执行时间的微小变化,但不是这种变化的戏剧性变化。
谢谢, Jim K
我不知道这是特定于FFT的MKL版本还是一般问题。
答案 0 :(得分:0)
某些CPU可能需要更多的执行周期来使用下溢操作数或生成下溢结果时执行浮点算术运算。
对于滤波器系数,您可以尝试远大于零的权重(相对于接近IEEE双倍或浮动下溢数字的值),并且仍然具有优于-120 dB阻带的滤波器。试试吧。
某些CPU和OS组合可能允许关闭下溢的浮点运算或结果。这也可能有所帮助。