英特尔FFT性能

4

哪个处理器在每秒某些FFT操作方面表现更好,i5-2500K还是i7-960,例如:对于16k缓冲区长度的复杂FFT就地操作?

我之所以问这个问题,是因为我想要饱和所有核心和线程,而由于i7有8个线程,而i5只有4个,我的主要关注点是SSE指令是否能够在所有8个逻辑线程上并行运行。


是的,但如果你真的想要获得最大的性能,那么你不能忽视库的选择。 - Paul R
@Paul - 是的,我可能会选择定制的汇编语言解决方案来完成最终的工作。 - Daniel Mošmondor
我怀疑它的速度是否能与FFTW相媲美 - 这很难超越。 - Paul R
Daniel Mošmondor,这很困难。另外,FFTW和英特尔的MKL非常快,不是每个程序员都能在汇编中击败它们。 - osgx
1
@osgx,我最终使用了fftw。当然,没有其他库能够与之相提并论。 - Daniel Mošmondor
显示剩余4条评论
2个回答

4

这个测试http://ixbtlabs.com/articles3/cpu/ci7-turbo-ht-p1.html?pages=ci7-turbo-ht-p1.html表明,在FFT方面,启用i7的HT并没有带来任何收益。(科学应用程序表格中的FFT行)。FFT来自MATLAB(基于一个名为FFTW的库)。

i7-960有4个核心和8个线程,来自HyperThreading(HT)。正如ixbt所示,HT不能帮助计算更多的FFT,因此我建议您购买更新的i5-2500,它具有相同的4个核心,但更高的频率、更大的Turbo Boost(动态超频)和更新的技术。

此外,这个“i5”是下一代微架构(SNB - Sandy Bridge)的,并且它具有AVX(每GHz两倍的FLOPS)。如果FFT可以使用它(使用现代库和现代编译器),它应该几乎可以将FFT性能提高一倍(如果我们不考虑内存带宽限制)。英特尔表示,他们的新MKL中从AVX增长了1.8倍: http://software.intel.com/en-us/articles/intel-avx-optimization-in-intel-mkl-v103/ 引用: AVX / NHM(启用AVX的Nehalem NHM)在N = 1024的基数2 1D CFFTs上的加速比为1.8倍
因此,i5-2500每个时钟周期从AVX获得1.8倍的性能提升,它具有更高的GHz(从规格和TurboBoost都是如此),并支持更快的内存(NHM为DDR3-1066,i5 SND为DDR3-1333)。

2
0%的增益是因为仍然只有4个物理FPU,其具有8个线程争夺。对于数学密集型计算,本来会发生2个线程的I/O上下文切换,但实际上从未发生,因此在最大负载下它的表现就像四核心处理器。 - Jesus Ramos

0

我会说不,i7有8个线程的一个特点是,在上下文切换时(由于逻辑核心的存在,这种情况会更频繁发生),FPU状态是不被保留的,这意味着一旦FPU操作恢复,它必须重新填充FPU结构,以便完成操作。从我所了解的情况来看,i5-2500k会更快地完成这个过程,因为线程只在每个核心之间竞争,而不是在使用FPU时产生更高的竞争率(只有4个FPU)。

P.S:我可能错了,因为我对960的具体情况不确定,但这是我过去一些工作中发现的。


1
如果有人能够用基准测试来支持这一点,那就太好了。感谢提供了一种不浪费金钱却得不到任何东西的方式。 - Daniel Mošmondor
i7-960在PassMark上得分6676,i5-2500k得分7263。 - Jesus Ramos
看起来i5-2500k会胜过它,让我看看能否找到一个LinPack测试运行。 - Jesus Ramos
1
谢谢。如果您能提供特定FFT案例(基准)的信息,那就太棒了。 - Daniel Mošmondor
我这里正在进行原始FPU性能测试,但似乎找不到FFT或FFTW的任何基准测试。 - Jesus Ramos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接