Xeon Phi 协处理器与 Xeon Phi 主处理器?
Xeon Phi coprocessor vs Xeon Phi host processor?
主处理器和协处理器有什么区别?特别是 Xeon Phi 协处理器和 Xeon Phi 主机处理器?
我在这些机器上得到了一些性能结果(扩散方程的并行化 OpenMP 代码是 运行),这表明当相同数量的线程工作时,主机处理器的工作速度要快得多。我想知道差异并将它们与我的结果联系起来。
如果您谈论的是当前一代 (KNC) 而不是下一代 (KNL),这些是定义。
主机处理器:托管协处理器的~8 核/~16 线程至强,这意味着协处理器通过 PCIe 总线连接至至强主机。
协处理器:挂在至强 PCIe 总线上的至强主机上的 ~60 核心/~240 线程协处理器。
主机使用卸载指令或 运行 本地使用一些分布式编程范例(例如 MPI)将高度并行/可矢量化的作业分配给协处理器。
关于下一代主机处理器的评论,评论者指的是下一代 Xeon Phi (KNL) 可以配置为脱离 PCIe 总线的协处理器(如第一代 Xeon Phi, KNC) 或作为插入主板的普通处理器。
只是重申 Jeff 在评论中所说的话,您有一个 Xeon 主机和一个附加的 Xeon Phi 协处理器。当前一代的 Xeon Phi(Knight's Corner)只能作为协处理器使用,不能作为独立的 Xeon Phi 主机使用(下一代 Knight's Landing 应该可以使用)。
当您 运行 您的程序 没有从您的主机 Xeon this website 卸载 时,看起来您将能够 运行 最多 16 个线程。请注意,每个内核的速度约为 2.2 GHz。
当您 运行 您的程序在 Xeon Phi 协处理器上处于本机执行模式时,您应该能够 运行 使用更多线程。要使用的最佳线程数取决于您拥有的 the model of Xeon Phi(一些线程最好使用 56 个,其他线程使用 60 个)。但请注意,每个 Xeon Phi 内核(大约 1.2 GHz)明显弱于单个 Xeon 内核(大约 2.2 GHz)。多核 Xeon Phi 技术的好处就是:您可以 运行 跨越许多内核。
最后要考虑的非常重要的事情是 Xeon Phi 有一个 512 位宽的 SIMD 指令集。因此,您可以在 Xeon Phi 协处理器上支持比在主机上更好的 SIMD 矢量化 运行ning。对于您的情况,我相信您的 Xeon 主机只有一个 256 位 SIMD 矢量处理单元。因此,如果您还没有这样做,您可以利用 SIMD 矢量化提高 Xeon Phi 的性能(如果您处理的是单精度,则最高可达 x16)。您的 Xeon 主机最多只会放弃 x8 性能。只是为了开始 google 跋涉,OpenMP 4.0 允许您编写 #pragma omp simd
之类的内容,以便告诉编译器何时对整个代码中的低级循环进行矢量化。如果你真的想要 Xeon Phi 的最大性能,添加 SIMD 矢量化是必要的。
所以直接回答你的问题:使用相同数量的内核比较你的 Xeon 主机和 Xeon Phi 协处理器之间的性能结果是没有用的。我们已经知道每个 Xeon Phi 核心都比每个 Xeon 核心慢。 您应该使用每个允许的最大内核数(分别为 60 和 16)来比较结果,如果您想要直接比较,则应最大限度地利用向量处理单元。
主处理器和协处理器有什么区别?特别是 Xeon Phi 协处理器和 Xeon Phi 主机处理器?
我在这些机器上得到了一些性能结果(扩散方程的并行化 OpenMP 代码是 运行),这表明当相同数量的线程工作时,主机处理器的工作速度要快得多。我想知道差异并将它们与我的结果联系起来。
如果您谈论的是当前一代 (KNC) 而不是下一代 (KNL),这些是定义。
主机处理器:托管协处理器的~8 核/~16 线程至强,这意味着协处理器通过 PCIe 总线连接至至强主机。
协处理器:挂在至强 PCIe 总线上的至强主机上的 ~60 核心/~240 线程协处理器。
主机使用卸载指令或 运行 本地使用一些分布式编程范例(例如 MPI)将高度并行/可矢量化的作业分配给协处理器。
关于下一代主机处理器的评论,评论者指的是下一代 Xeon Phi (KNL) 可以配置为脱离 PCIe 总线的协处理器(如第一代 Xeon Phi, KNC) 或作为插入主板的普通处理器。
只是重申 Jeff 在评论中所说的话,您有一个 Xeon 主机和一个附加的 Xeon Phi 协处理器。当前一代的 Xeon Phi(Knight's Corner)只能作为协处理器使用,不能作为独立的 Xeon Phi 主机使用(下一代 Knight's Landing 应该可以使用)。
当您 运行 您的程序 没有从您的主机 Xeon this website 卸载 时,看起来您将能够 运行 最多 16 个线程。请注意,每个内核的速度约为 2.2 GHz。
当您 运行 您的程序在 Xeon Phi 协处理器上处于本机执行模式时,您应该能够 运行 使用更多线程。要使用的最佳线程数取决于您拥有的 the model of Xeon Phi(一些线程最好使用 56 个,其他线程使用 60 个)。但请注意,每个 Xeon Phi 内核(大约 1.2 GHz)明显弱于单个 Xeon 内核(大约 2.2 GHz)。多核 Xeon Phi 技术的好处就是:您可以 运行 跨越许多内核。
最后要考虑的非常重要的事情是 Xeon Phi 有一个 512 位宽的 SIMD 指令集。因此,您可以在 Xeon Phi 协处理器上支持比在主机上更好的 SIMD 矢量化 运行ning。对于您的情况,我相信您的 Xeon 主机只有一个 256 位 SIMD 矢量处理单元。因此,如果您还没有这样做,您可以利用 SIMD 矢量化提高 Xeon Phi 的性能(如果您处理的是单精度,则最高可达 x16)。您的 Xeon 主机最多只会放弃 x8 性能。只是为了开始 google 跋涉,OpenMP 4.0 允许您编写 #pragma omp simd
之类的内容,以便告诉编译器何时对整个代码中的低级循环进行矢量化。如果你真的想要 Xeon Phi 的最大性能,添加 SIMD 矢量化是必要的。
所以直接回答你的问题:使用相同数量的内核比较你的 Xeon 主机和 Xeon Phi 协处理器之间的性能结果是没有用的。我们已经知道每个 Xeon Phi 核心都比每个 Xeon 核心慢。 您应该使用每个允许的最大内核数(分别为 60 和 16)来比较结果,如果您想要直接比较,则应最大限度地利用向量处理单元。