问题标签 [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.
c++ - 是否有 Xeon Phi 的模拟器/模拟器?
我打算将一些计算卸载到 Xeon Phi,但想首先测试不同的 API 和不同的并行编程。
是否有 Xeon Phi(Windows 或 Linux)的模拟器/模拟器?
c++ - 无法使用英特尔编译器强制内联 C++ 函数
我有一个定义为的函数
(这__m512d
是在英特尔 MIC 架构上映射到 SIMD 寄存器的本机数据类型)
由于这个函数相当短并且经常被调用,我希望它在每次调用时都被内联。但是英特尔的编译器似乎不愿意内联这个函数,即使在我使用了-inline-forceinline
and-O3
选项之后。它在编译时报告“Forceinline 不接受调用 ...”。由于我必须使用一些编译器特定的功能,例如__m512d
类型,英特尔编译器是我唯一的选择。
更多信息:
文件结构非常简单。该函数vec_add
在一个头文件中定义,该文件mic.h
包含在另一个文件中test.cc
。函数vec_add
只是在循环中重复调用,不涉及函数指针。代码的简化版本test.cc
如下所示
我尝试了各种提示,例如__attribute__((always_inline))
,__forceinline
和 compiler option -inline-forceinline
,但都没有奏效。
完整代码
我以简化的形式将所有相关代码放在一起。如果您有英特尔编译器,您可以尝试一下。使用选项-Winline
查看内联报告并-inline-forceinline
强制内联。
配置
- 编译器:英特尔编译器(ICC)14.0.2
- 编译选项:
-O3 -inline-forceinline -Winline
你知道为什么这个函数不能被内联吗?毕竟我怎样才能让它内联(我不想转向宏)?
c - 英特尔至强融核使用的内在函数是否比自动矢量化获得更好的性能?
Intel Xeon Phi 提供使用“IMCI”指令集,
我用它来做“c = a*b”,像这样:
并测试它的性能,当 N SIZE 为 1048576 时,
它需要花费 0.083317 秒,我想将性能与自动矢量化进行比较,
所以其他版本代码如下:
这个版本花费 0.025475 秒(但有时花费 0.002285 或更少,我不知道为什么?)
如果我将 _Cilk_for 更改为 #pragma omp parallel for,性能会很差。
那么,如果答案是这样的,为什么我们需要使用内在函数?
我在哪里犯错了吗?
有人可以给我一些优化代码的好建议吗?
c++ - 英特尔 C++ 编译器给出“此平台不支持卸载构造”错误
_Cilk_offload
在使用关键字的Windows(使用 Visual Studio)上编译基本代码段时,编译器会error : offload constructs are not supported on this platform
在所有带有_Cilk_offload
and的行上抛出_Cilk_shared
(使用 \Qoffload 编译)
平台或设置的具体问题是什么?
编辑:代码在编译时失败,编译机和目标机不同
以下是我的代码的基本大纲
主文件
卸载.h
卸载.cpp
intel - 如何分析在英特尔 MIC 架构上本机运行的应用程序的缓存性能
如何检查应用程序的给定数据是否适合在 MIC 上本地运行的应用程序的 L1 缓存或 L2 缓存。我一直在寻找它,因为我必须尝试适合 L1 缓存、L2 缓存和任何一个缓存的各种数据?
hpc - 如何区分英特尔至强融核协处理器 7120P、7120X、7120D、7120A
我有一个 Xeon phi 协处理器 7120P。
当我运行 micinfo 时,我看到主板 SKU 是 C0PRQ-7120 P/A/X/D。
我注意到 SMC HW 修订版声明 Product 300W Passive CS,我在 tomshardware 上读到 P 代表英特尔至强 phi 系列设备的被动冷却。这是它还是有任何其他方法可以判断我的系统 7120 P/A/X 或 D 上有哪个设备?
从 ark.intel.com 上给出的规格来看,所有四款设备似乎都是相同的。有人可以详细说明这些设备之间的实际区别是什么。
intrinsics - _mm512_mask_prefetch_i32gather_ps() 会为每个元素预取整个缓存行吗?
收集预取内在函数_mm512_mask_prefetch_i32gather_ps
可用于在 Knights Corner 上预取 32 位浮点数。
由于不存在对应的双精度内在函数,如何将这个内在函数用于预取 64 位或 128 位元素?
是否需要显式预取每个 4 字节块,或者我们是否可以假设每个 32 位变量的预取实际上会预取它占用的整个 64 字节缓存行?
例子:
我想在{1,2,10,12}
基地址的偏移量处预取 4 个双精度0xf0000000
的偏移量处预取 4 个双精度数。
这对应于 的地址{0xf0000008, 0xf0000010, 0xf0000050, 0xf0000060}
。
这些占用从 开始的两个缓存行{0xf0000000, 0xf0000040}
。
_mm512_mask_prefetch_i32gather_ps
使用这两个缓存行的基地址就足够了吗?
我最初在英特尔 MIC 论坛上发布了这个问题,但没有成功。
intel - 如何在英特尔 MIC 上本地分析 openmp 代码?
我有一个用 C 编写的 openmp 代码。我在 Stampede 上的 Intel MIC 上执行了代码。我想分析代码以找到代码中的热点,以便对我进一步优化代码有所帮助。我尝试使用分析器 gprof,但我在某处读到 gprof 不能直接在 MIC 上使用。我尝试通过教程来使用 perf。我可以走到某个步骤,然后当 perf annotate 步骤到来并执行代码时,它给了我意外的错误“)”。所以我不知道如何继续分析我的代码。有人可以帮忙吗??这是我参考 perf 教程的站点:sandsoftwaresound.net/perf/perf-tutorial-hot-spots/。
hpc - 在 Xeon CPU、GPU 和 Xeon Phi 上加速减少操作的方法
我有一个应用程序,其中大型矩阵上的减少操作(如求和、最大值)是瓶颈。我需要尽可能快地做到这一点。mkl 中是否有向量指令可以做到这一点?
在至强 cpu、gpu 或 mic 上是否有特殊的硬件单元来处理它?
通常如何在这些硬件中实现 reduce 操作?
intel-mic - Streaming Stores Segmentation Fault on Intel MIC
I want to implement streaming stores in my code on Intel MIC. I have a force_array and 3 variables tempx, tempy and tempz. I need to do some computation and then store them in another array which won't be used in near future. So I felt streaming stores would be a better choice to improve the performance. But I see that I am getting a segmentation fault and I am not sure if it is because of the load or the store. This code is preceded and succeeded by a few lines of code and the entire piece of code is inside two for loops which is preceded by openmp directives. As it is a parallel program, I am not able to debug it well. Can anyone help me by finding out the mistake(s) ?
Thanks in advance !!! The code is given below: