2

我为 3 维 FFT(MKL 接口)开发了 C 代码,以便在英特尔 MIC 平台上本地运行。

对于复数到复数的转换,数据元素是双精度复数。我使用填充的前导维度,mkl_malloc() 64 字节对齐,并为数组使用 radix-2 维度我最终得到的性能约为 50 Gflop/s。

对于类似类型的转换,我无法在任何地方执行列表。谁能告诉我这对 Xeon Phi 是否合理(满意)?

4

1 回答 1

2

你的结果看起来不错。

英特尔提供的带有二维浮点数据的FFT 调优指南显示了 100Gflops 的峰值性能。所以双数据上的 50Gflops 应该是合理的。

除了您的问题中提到的因素外,其他因素包括前导尺寸、填充、线程数和亲和力也对性能有很大影响。

您可以参考这些英特尔文档以获取更多信息。

Xeon phi 上 MKL 的文档列表

http://software.intel.com/en-us/articles/intel-mkl-on-the-intel-xeon-phi-coprocessors

在至强 phi 上使用 MKL 的性能提示

http://software.intel.com/en-us/articles/performance-tips-of-using-intel-mkl-on-intel-xeon-phi-coprocessor

在 xeon phi 上调整 dft 函数

http://software.intel.com/en-us/articles/tuning-the-intel-mkl-dft-functions-performance-on-intel-xeon-phi-coprocessors

于 2013-09-24T16:26:26.137 回答