5

主处理器和协处理器有什么区别?特别是至强融核协处理器和至强融核主机处理器?

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

4

2 回答 2

5

只是为了重申 Jeff 在评论中所说的话,您有一个 Xeon 主机,带有一个附加的 Xeon Phi 协处理器。当前一代至强融核(Knight's Corner)仅作为协处理器提供,而不是作为独立的至强融核主机(下一代与 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 性能。只是为了让您开始谷歌之旅,OpenMP 4.0 允许您编写诸如#pragma omp simd告诉编译器何时对整个代码中的低级循环进行矢量化之类的东西。如果您真的想要 Xeon Phi 的最大性能,添加 SIMD 矢量化是必要的。

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

于 2015-10-28T16:09:47.247 回答
1

如果您谈论的是当前一代 (KNC) 而不是下一代 (KNL),那么这些就是定义。

主机处理器:托管协处理器的~8 核/~16 线程至强,这意味着通过 PCIe 总线连接协处理器的至强主机。

协处理器:~60 核/~240 线程协处理器,挂在至强 PCIe 总线上的至强主机上。

主机使用卸载指令或通过使用诸如 MPI 之类的分布式编程范例在本地运行它们来将高度并行/可矢量化的作业转移到协处理器。

至于关于下一代主机处理器的评论,评论者指的是下一代至强融核 (KNL) 可以配置为挂在 PCIe 总线上的协处理器(如第一代至强融核,KNC)或作为插入主板的普通处理器。

于 2015-10-28T16:09:39.107 回答