问题标签 [xeon-phi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12887 浏览

opencl - 比较 Intel Xeon Phi 和 Nvidia Tesla K20 的基准

令我惊讶的是,我找不到使用开源 OpenCL 基准套件(例如rodiniaSHOC )的这些产品的比较。这样的比较可能比理论峰值性能的比较或简单矩阵乘法内核的性能比较更有趣,我已经找到了。

有谁知道在哪里可以获得这样的结果?如果做不到这一点,是否有任何堆栈溢出用户可以访问一种或两种产品,以及运行基准测试和共享结果的时间和倾向?任何一张卡的任何版本的结果都会很有趣。

0 投票
1 回答
248 浏览

vectorization - Xeon Phi 上的 loaddup_pd/unpacklo_pd

如果我在 512 宽的 SIMD 向量中有以下双精度数,例如在 Xeon Phi 寄存器中:

是否有可能使它成为:

使用一条指令?另外,由于双精度数没有按位内在函数,这仍然是实现上述目标的有效方法吗?

0 投票
1 回答
754 浏览

vectorization - Xeon Phi 中的分散/聚集

我指的是英特尔关于 Xeon Phi 指令集的手册,但无法理解分散/收集指令的工作原理。

假设我有以下双精度向量:

是否可以创建 4 个向量,如下所示:

使用这些说明?有没有其他方法可以实现这一目标?

0 投票
2 回答
1832 浏览

c - Intel Xeon Phi 上的快速popcount

我正在 Intel Xeon® Phi® 上实现超快速 popcount,因为它是各种生物信息学软件的性能热点。

我已经实现了五段代码,

可以从https://www.dropbox.com/sh/b3sfqps19wa2oi4/iFQ9wQ1NTg下载支持 OpenMP 的代码总结

该代码是使用 Intel C/C++ Compiler XE 13 使用命令编译的:

代码在协处理器(61 个内核)上以“122 个线程”本地运行,线程亲和性为“平衡”,使用导出:

我正在使用Xeon Phi SE10p,B1 stepping,CentOS6.4在28兆的垃圾(由rand()填充)上测试并迭代10000次,性能如下:

“scalar_popcountu”和“scalar_popcountlu”分别使用“_mm_countbits_32”和“_mm_countbits_64”内在函数,它们利用标量“popcnt”指令。设置“#pragma vector always”要求编译器将负载和总和向量化为 16 个无符号整数或 8 个无符号长整数,尽管 popcount 本身仍然是一个标量指令。

vpu_popcount1 的实现类似于 SSSE3 popcount 实现http://wm.ite.pl/articles/sse-popcount.html。但是,1) Xeon Phi 不支持对整数的打包字节操作(最小值是双字,也就是 32 位)和 2) 它不实现“绝对差的打包和”指令(如 SSSE3 中的 _mm_sad_epu8),因此减少添加是由“vpermf32x4”、“vpaddd”和“movslq”四组组合执行的。因此,该实现生成的指令比原始 SSSE3 版本多得多。

vpu_popcount2 的实现类似于 SSE2 popcount 的实现(可以参考《Hacker's Delight》)。该实现生成的指令比 vpu_popcount1 少,速度快 30% 左右。然而,繁琐的“减加”依然无法避免。

vpu_popcount3 的实现非常特定于 Xeon Phi。混合使用向量和标量操作,它比 vpu_popcount2 快约 15%(在我的实现中,向量操作中的标量操作的穿插是休闲的,可以根据编译器生成的汇编代码重新排列标量操作,但预期的改进就我而言是有限的)。改进基于以下观察:1) Xeon Phi 是按顺序调度,2) 每个时钟周期可以发出两条标量指令或“1 个向量+1 个标量”指令。我已将展开从 8 减少到 4,以避免寄存器文件饱和。

每个函数中提前从内存到 L2 8 循环和从 L2 到 L1 1 循环的显式预取使 L1 命中率从 0.38 增加到 0.994。

展开确实将性能提高了约 15%。这是反直觉的,因为 Xeon Phi 是按顺序调度的。但是 unroll 使 icc 编译器能够进行尽可能多的编译时间调度。

我们有更多的技术来提高性能吗?

来自 Brian Nickerson 的两段更快的代码,

vpu_popcount3_revised:

vpu_popcount5:

0 投票
3 回答
383 浏览

intel-mic - xeon phi 5110p 上的卸载守护进程

我知道英特尔至强 phi 协处理器 SE10X 有 61 个内核,建议仅使用 60 个内核,因为卸载守护进程使用了​​ 1 个内核。另外,由于intel xeon phi协处理器5110P有60核,是否建议使用59核?

0 投票
2 回答
644 浏览

multithreading - 仅使用线程使用 Xeon Phi

是否可以通过启动多个线程来使用 Xeon Phi,或者使用 Xeon Phi 需要特殊类型的编程?

0 投票
3 回答
2731 浏览

scala - 将 Xeon Phi 与基于 JVM 的语言一起使用

是否可以使用基于 JVM 的语言(例如 Scala)来使用 Xeon Phi?有什么例子吗?

0 投票
3 回答
294 浏览

mpi - 在 Xeon Phi 上使用由 open_shm 创建的共享内存时出现分段错误

我已经为单个 Xeon Phi 节点(上面有 61 个内核)编写了我的代码。我有两个文件。在调用任何其他 mpi 调用之前,我已经调用了 MPI_Init(2)。我找到了 ntasks,排名也使用 mpi 调用。我还包括了所有必需的库。我仍然得到一个错误。你能帮我解决这个问题吗?

在文件 1 中:

在文件 2 中:

然后我在这个rec​​vbuff的文件1中做一些计算。 我在使用 sharedRegion 变量时遇到了这个分段错误。

0 投票
1 回答
2309 浏览

gcc - 在 Xeon Phi 上使用 GCC

有人告诉我可以在 MIC 上运行一个用 gcc 构建的程序。

真的吗?

如果是,如何进行?

我正在使用 gcc 4.4.7 版。

0 投票
1 回答
2253 浏览

c# - 如何使用 C# 对英特尔至强融核进行编程?

我是一名 C# 程序员,有一些 C++ 经验,都在 Windows 上。

有了这个技能组合,是否有任何选项可以为英特尔至强融核处理器开发?

找到这个链接,但不确定这是否是最好的/唯一的方法。

谢谢你的建议。