我花了一些时间优化我的算法,而我的准串行(无显式并行化)代码将 95% 的时间花在执行fftn
密集单(浮点)矩阵乘法的行上
for k=1:10
q = q + x{k}.* fftn( mArray{k}.* ifftn( mOther{k} .* z ) );
尽管性能提升可以忽略不计,但我尝试为 FFT 添加一些智慧。
我不知道如何加快这段代码的速度,你认为编译 FFTW 会导致性能提升吗?我正在将 Matlab 2012b 用于第三代 i7。
编辑
我似乎打错了,x 取决于 k,否则就太容易了。我希望有人可以谈论优化实际的fft。
q = q + x.* fftn( mArray{k}.* ifftn( mOther{k} .* z ) );
q = q + x{k}.* fftn( mArray{k}.* ifftn( mOther{k} .* z ) );