Xeon Phi协处理器与Xeon Phi主机处理器?

Ami*_*mir 5 processor openmp xeon-phi

主处理器和协处理器有什么区别?特别是Xeon Phi协处理器和Xeon Phi主机处理器?

我在这些机器上有一些性能结果(正在运行扩散方程的并行OpenMP代码),这表明当相同数量的线程工作时,主机处理器的工作速度要快得多.我想知道不同之处并将它们与我的结果联系起来.

Nos*_*All 5

只是重复一遍Jeff在评论中所说的内容,你就拥有了一个带有Xeon Phi协处理器的Xeon主机.目前的Xeon Phi(Knight's Corner)只作为协处理器提供,而不是作为独立的Xeon Phi主机(下一代应该可以使用Knight's Landing).

当你运行你的程序而不从主机Xeon 卸载时,从这个网站看起来你最多可以运行16个线程.请注意,每个内核的速度约为2.2 GHz.

当您在Xeon Phi协处理器上以本机执行模式运行程序时,您应该能够运行更多线程.使用的最佳线程数取决于你拥有的Xeon Phi的模型(一些最好用56,另一些用60).但请注意,每个Xeon Phi核心(大约1.2 GHz)明显弱于单个Xeon核心(大约2.2 GHz).多核Xeon Phi技术的好处就在于:您可以运行多个核心.

最后一个非常重要的考虑因素是Xeon Phi具有512位宽的SIMD指令集.因此,您可以在Xeon Phi协处理器上支持比在主机上运行更好的SIMD矢量化.在您的情况下,我相信您的Xeon主机只有一个256位SIMD矢量处理单元.因此,如果您尚未使用SIMD矢量化,您可以在Xeon Phi上提高性能(如果您处理的是单精度,则最高可达x16).您的Xeon主机只会提供x8性能.只是为了让你开始google trek,OpenMP 4.0允许你编写类似的东西#pragma omp simd,以便告诉编译器何时在整个代码中向量化低级循环.如果你真的想从Xeon Phi获得最大性能,那么添加SIMD矢量化是必要的.

所以直接回答你的问题:使用相同数量的内核比较你的Xeon主机和Xeon Phi协处理器之间的性能结果是没用的.我们已经知道每个Xeon Phi核心都比每个Xeon核心慢.您应该使用每个允许的最大核心数(分别为60和16)来比较结果,并且如果您想要直接比较,则最大限度地利用矢量处理单元.

  • 很好的答案 - 只需几个注意事项:协处理器上的每个核心都有4个线程,在60核协处理器上总共有240个线程.每个线程最多发出一条指令,每隔一个时钟.因此,每个核心至少需要2个线程才能保持每个核心的繁忙.因此,根据代码的缓存行为以及有多少并行性,有时可以使用少量核心的最大数量来获得更好的性能.但是,如果你有并行性,使用所有核心(但是1 - 想要留下一个用于OS等)max_cores X 3或4个线程每个核心是最佳的. (3认同)