问题标签 [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.
gcc - 在 xeon-phi 上引导自定义内核
我正在尝试在 Xeon-phi 上启动自定义内核,而不是默认的 Linux 内核。在此链接上,我找到了一种交叉编译内核的方法,该内核使用 k1om-mpss-linux-gcc 交叉编译器成功编译。交叉编译是否足够?我得到错误
mykernel.img 不是 k1om Linux bzImage
编辑:所以,我使用 /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc 编译器来编译一个简单的 helloworld.c 程序和内核源代码。我在可执行文件上得到了 objdump -f 的两种不同类型的结果。
对于 helloworld.c:
hello: file format elf64-k1om
architecture: k1om, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000400400
对于我的内核:
mykernel: file format elf32-i386
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0010000c
我使用相同的编译器编译,但它们显示不同的架构。这是什么原因?
intel - 英特尔至强融核和 ANSYS FLUENT
有没有人通过 Intel Xeon Phi:5110P 或 31S1P 模型有效地加速了 ANSYS FLUENT(到 ANSYS Workbench 14-15-16 版本)中的计算?
有可能的?FLUENT 支持这些协处理器吗?
c++ - Xeon phi 卸载模式如何利用线程并行和矢量化
我正在使用 cilk plus 和卸载对 Xeon phi 进行一些性能测试。
在一个简单的向量添加程序中,我有两种方法可以做到:
使用 cilk_for 将任务拆分到 Xeon phi 中的不同线程:
/li>使用矢量注释:
/li>
我的测试表明,第一种方式在至强 phi 上比第二种方式快约 10 倍。当我不卸载并在 Xeon E5 主机 CPU 上运行它时,也会发生同样的情况。
首先我想知道我的理解是否正确:
第一种方法仅利用 XEON phi 中的线程并行性(60 核 * 4 线程每个)。但不会执行向量运算。
第二种方法只利用向量化,它只会在一个线程中运行此代码并使用 SIMD(IMCI) 指令。
其次,我想知道编写此代码的正确方法是什么,这样它既可以将任务拆分到不同的线程,又可以在 Xeon phi 上使用向量指令?
提前致谢。
c++ - 可以从具有不同分配器的 stl 容器构造吗?
说我有
我在 Cilk Plus 中使用 __offload::shared_allocator 作为 allocator2 从主机 CPU 卸载到 Xeon Phi 协处理器
我可以从 B 构造 A 吗?
更一般地说,不同分配器对哪种 STL 函数很重要?
c++ - 在 Cilk 共享函数中使用 Cilk 减速器
您好,我正在尝试使用 _Cilk_Shared 和 _Cilk_offload 将一些并行工作卸载到 MIC。
我声明了一个 Cilk 共享函数:
在 main 我调用这个函数使用
在这个函数中,所有东西都应该被卸载到 MIC;
我想在 somefun 中声明一个 Cilk 减速器,这样我就可以使用 cilk_for 并附加到一个 cilk 减速器列表中,
但我得到错误:
我知道我可以使用 offload pragma 来做到这一点,所以我应该也可以使用 cilk shared 来做到这一点,对吧?
我找不到使用 _Cilk_shared 和 _Cilk_offload 的具体示例。
提前致谢
c++ - 为什么使用 _Cilk_offload 卸载希望每个函数都是 _Cilk_shared?
我已将一些全局变量声明为 _Cilk_shared。它们用于我要卸载的功能中它们也用于我不想卸载的某些功能中。
所以最初我只将那些需要卸载的函数声明为_Cilk_shared,并使用_Cilk_offload 调用这些函数。
它编译得很好。当我在主机上运行它时,它只会给出正确的结果。
然后我用 MIC 运行它。它给了我关于无法加载库 blablabla 未定义符号的运行时错误,后跟我没有声明为 _cilk_shared 的函数名称。这些函数也不需要 _cilk_shared。
所以我必须把这些函数改成_cilk_shared。再次运行它。这次 MIC 给出了正确的结果。
我检查了这些函数(我不想卸载并且最初没有声明为 _cilk_shared )是否被卸载,通过使用
结果是它们没有被卸载....
所以我想知道为什么它要我将这些函数声明为_Cilk_shared?
gcc - 如何使用 GCC 5.1 和 OpenMP 将工作卸载到 Xeon Phi
背景
我们一直在尝试使用新的GCC 5.1版本将 OpenMP 块卸载到英特尔 MIC(即 Xeon Phi),但没有成功。在 GCC卸载页面之后,我们将build.sh
脚本放在一起,为“intelmic”和主机编译器构建“accel”目标编译器。编译似乎成功完成。
然后,我们使用该env.sh
脚本尝试编译hello.c
下面列出的简单程序。但是,该程序似乎只在主机上运行,而不是在目标设备上运行。
由于我们通常不熟悉卸载以及编译 GCC,因此我们可能会做很多错误的事情。但是,我们已经调查了已经提到的资源以及以下资源(我没有足够的代表来发布链接):
- Xeon Phi 卸载
- 至强融核教程
- 英特尔至强融核卸载编程模型
最大的问题是他们通常引用英特尔编译器。虽然我们计划购买副本,但我们目前没有副本。此外,我们的大部分开发管道已经与 GCC 集成,我们更愿意保持这种方式(如果可能的话)。
我们已经安装了最新的 MPSS 3.5 发行版,进行了必要的修改以在 Ubuntu 下工作。我们可以成功通信并检查系统中 Xeon Phis 的状态。
在我们的努力中,我们也从未看到任何迹象表明代码正在麦克风仿真模式下运行。
问题
- 有没有人成功构建了实际上卸载到 Xeon Phi 的主机/目标 GCC 编译器组合?如果是这样,您使用了哪些资源?
- 我们是否遗漏了构建脚本中的任何内容?
- 测试源代码有什么问题吗?它们编译时没有错误(除了下面提到的)并运行 48 个线程(即主机系统中的逻辑线程数)。
- 由于谷歌搜索没有透露太多信息,是否有人对下一步有建议(除了放弃 GCC 卸载)?这是一个错误吗?
谢谢!
构建.sh
环境文件
你好.c(版本 1)
我们编译了这段代码:
hello_omp.c(版本 2)
几乎相同的东西,但我们尝试了
句法。事实上,mic
它会抱怨,但是对于任何设备号(即 0),它都会在主机上编译和运行。此代码以相同的方式编译。
c - 手动填充数组
我试图从这本书中理解 9 点模板的算法,逻辑对我来说很清楚,但是 WIDTHP 宏的计算是我无法理解的,这里是 breif 代码(原始代码长度超过 300 行!! ):
原始数组是 5900 X 10000,但如果我定义 PAD64 ,数组变为 5915.75 X 10000
虽然到目前为止我可以猜到作者正在尝试将数组对齐和填充到 64 字节边界。但是 malloc 返回的数组通常是对齐的(&填充),另外,posix_memalign 给你一块保证有请求对齐的内存,我们也可以使用
这个 WIDTHP 会对我的代码性能产生什么影响?
opencl - 在 XeonPhi 上安装 OpenCL
因为我没有要测试的设备所以我问这个问题如果我在 XeonPhi 上使用 OpenCL,我只想安装 XeonPhi 的驱动程序和运行时(https://software.intel.com/en-us/articles/opencl-drivers ),那么 OpenCL 可以运行和编译代码,对吗?MPSS( https://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss-archive#33n-2 )怎么样,我在 Linux 上开发 OpenCL 时看到,必须安装 MPSS以及 XeonPhi 的驱动程序和运行时。我还没有找到介绍在 WindowOS 上的 XeonPHi 上使用 OpenCL 的详细信息的文档,您能与我分享一些有关此的文档吗?
algorithm - 如何使openMP上的代码在xeon phi上工作?
每个人。希望有人能帮助我。我有一个代码可以在 openMP 上并行 Prim 的算法,我需要让它在 Xeon Phi 上工作。请帮我。我无法真正理解如何做到这一点。这是我在 openMP 上的代码。