问题标签 [intel-mic]

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 投票
1 回答
852 浏览

fft - 英特尔至强融核上的 MKL 3D 双精度复数 FFT

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

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

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

0 投票
2 回答
3128 浏览

intel - 我们如何知道英特尔至强融核协处理器是否存在

我想在英特尔至强融核协处理器上运行一个程序。我如何知道我的机器是否有 Intel Xeon Phi 协处理器。

0 投票
1 回答
322 浏览

intel - Intel Xeon Phi 上每个时钟周期的乘法次数

在英特尔至强融核中,每个内核有 32 个 512 位宽的向量寄存器。每个向量寄存器每个周期可以进行 16 次单精度浮点运算。并且可以在 1 个周期内完成 2 个操作(1 个在 v-pipe 中,1 个在 u-pipe 中)。

我想知道除了在向量寄存器中完成的向量乘法之外,在 1 个时钟周期内可以完成多少次标量乘法。

0 投票
1 回答
257 浏览

timer - 至强 phi 定时器分辨率

我的主要目标是在 xeon phi 协处理器中插入 1ms 的延迟,但我的结果却有大约 9ms 的差异。因此,我尝试使用至强主机和 phi 协处理器进行试验,以找到计时器分辨率。我执行了以下代码:

在主机中运行以下程序:

./a.out Nano 睡眠成功 0.000155

在至强 phi 协处理器中运行:

./nsleep_mic Nano 睡眠成功 0.009998

所以我在 xeon phi 中得到了几乎 90% 的错误等待。

  1. 为什么会发生这种错误的等待?
  2. 如果我想要 1ms 的睡眠时间如何解决?
0 投票
2 回答
706 浏览

c - Intel Phi 上的 MKL 性能

我有一个例程对小矩阵(50-100 x 1000 元素)执行一些 MKL 调用以拟合模型,然后我调用不同的模型。在伪代码中:

调用上面的版本1。由于模型是独立的,所以我可以使用OpenMP线程来并行化模型拟合,如下(版本2):

当我在主机上运行版本 1 时,大约需要 11 秒,并且 VTune 报告并行化较差,大部分时间都处于空闲状态。主机上的版本 2 大约需要 5 秒,并且 VTune 报告了出色的并行化(几乎 100% 的时间花费在使用 8 个 CPU 上)。现在,当我编译代码以在本机模式下(使用 -mmic)在 Phi 卡上运行时,在 mic0 上的命令提示符下运行时,版本 1 和 2 都需要大约 30 秒。当我使用 VTune 对其进行分析时:

  • 版本 1 大约需要 30 秒,热点分析表明大部分时间都花在了 __kmp_wait_sleep 和 __kmp_static_yield 上。在 7710 秒 CPU 时间中,有 5804 秒用于自旋时间。
  • 版本 2 需要 fooooorrrreevvvver... 在 VTune 中运行几分钟后,我将其杀死。热点分析表明,25254s的CPU时间中,有21585s花费在[vmlinux]上。

谁能解释这里发生了什么以及为什么我的表现如此糟糕?我使用 OMP_NUM_THREADS 的默认值并设置 KMP_AFFINITY=compact,granularity=fine(如英特尔推荐的那样)。我是 MKL 和 OpenMP 的新手,所以我确定我犯了新手错误。

谢谢,安德鲁

0 投票
1 回答
432 浏览

intel - 我们可以在 Xeon Phi 上进行并发卸载吗

在 Nvidia GPU 上,我们可以使用 Streams 让多个内核同时运行。Xeon Phi怎么样?如果我通过不同的线程卸载两部分计算代码,它们会在 Xeon Phi 上同时运行吗?

0 投票
2 回答
1076 浏览

openmp - 进出英特尔 MIC 的内存传输开销

我观察到一种奇怪的行为,想知道它是否与 Intel Xeon Phi 有关。

我有一个小示例代码,基本上是大家都知道的矩阵乘法(三个嵌套的 for 循环)。我将计算卸载到带有 OpenMP 4.0 targetpragma 的 Intel MIC 并使用map(to:A,B) map(tofrom:C).

现在,我观察到的是对于小矩阵,例如 1024x1024,内存传输花费了非常长的时间。与原生版本(相同的代码,相同的并行化策略,只是没有卸载)相比,卸载版本消耗了大约 320 毫秒的时间。我对代码进行了热身运行以消除初始化开销。

与 Nvidia Tesla K20 相比,复制相同数量的内存却没有注意到这 320 毫秒非常糟糕。

是否有一些环境设置可以提高内存传输速度?

另外一个问题:我通过 OFFLOAD_REPORT 环境变量启用了卸载报告。报告中显示的两种计时结果有什么区别:

在 MIC 时间(内存传输?)中缺少的那 10 秒是什么?

那么第三个问题。是否可以将固定内存与英特尔 MIC 一起使用?如果是,如何?

0 投票
0 回答
434 浏览

fortran - 在英特尔至强融核卸载指令中使用带有“into”的指针

根据《英特尔至强融核协处理器高性能编程》一书,我们可以将数据从一个变量移动到另一个变量。我尝试按照示例进行操作,发现它有效:

代码:

我在主机上有一个数组 A,我将它们复制到 Xeon Phi 上的数组 B 中。我向 B 中的所有元素添加 10,然后将 Xeon Phi 上的 B 中的元素卸载到主机上的 A。结果是:

结果1

但是,如果我使用指针,则会出现错误。

代码 2:

结果2: 结果2

当我尝试将内容复制回来时,似乎出了点问题。

into 支持指针吗?在实际项目中,我们需要指向数组的指针。

0 投票
2 回答
1119 浏览

x86 - 掩码向量英特尔 AVX-512 指令的汇编语法

出于测试目的,我正在使用 Icc 内联汇编器为英特尔的 Xeon Phi 编写简短的汇编片段。现在我想使用屏蔽向量指令,但我无法将它们提供给内联汇编器。

对于这样的代码:

我收到错误消息

我尝试了很多不同的组合,但没有任何效果。Linux下编译器版本为intel64/13.1up03,使用GAS语法。

编辑:上面的代码实际上适用于非扩展汇编程序。所以这:

有效,而以下无效:

我想这与在扩展模式下注册名称之前使用双 % 的必要性有关。但是不,k 的单个 % 也不起作用。

0 投票
1 回答
1221 浏览

icc - 获取特定型号的至强 phi

我正在尝试找到我正在使用的 Xeon Phi 协处理器的确切型号。我运行 micpinfo 这就是我得到的