gcc-5.2 cilk加上卸载到intel gfx硬件
gcc-5.2 cilk plus offload to intel gfx hardware
我们可以使用带有gcc-5.2 的cilk plus卸载到图形硬件吗
g++ -std=c++14 -Wall -O3 -march=native -fcilkplus vec_add.cpp -o vec_add
vec_add.cpp:6:0: warning: ignoring #pragma offload target [-Wunknown-pragmas]
#pragma offload target(gfx) pin(out, in1, in2 : length(n))
编译器对以下测试代码发出上述警告:
#include <iostream>
#include <cilk/cilk.h>
void vec_add(int n, float *out, float *in1, float *in2)
{
#pragma offload target(gfx) pin(out, in1, in2 : length(n))
cilk_for(int i = 0; i != n; ++i)
{
out[i] = in1[i] + in2[i];
}
}
static int ar_sz = 100000;
int main (int argc, char **argv)
{
float foo[ar_sz];
float bar[ar_sz];
float out[ar_sz];
for(int i = 0; i != ar_sz; ++i)
{
foo[i] = i + ar_sz * 10;
bar[i] = i;
}
vec_add(ar_sz, out, foo, bar);
for(int i = 0; i != ar_sz; i += 100)
{
std::cout << "foo[" << i << "] =" << foo[i] << "t|tbar[" << i << "] =" << bar[i] << std::endl;
}
}
使用编译
FLAGS=-std=c++14 -Wall -O3 -march=native -fcilkplus
all: vec_add fib
vec_add: vec_add.cpp
g++ $(FLAGS) $< -o $@
"对Cilk Plus的完全支持已添加到GCC编译器中。"这意味着仅完全支持Cilk Plus的语言扩展。Gcc根本无法卸载到英特尔集成显卡。据报道,OpenMP可以卸载至强Phi协处理器和nvidia显卡。
https://gcc.gnu.org/ml/gcc/2016-04/msg00182.html
相关文章:
- 编译时未启用intel oneApi CUDA支持
- OpenCL 在 NVIDIA 和 Intel GPU 上启动内核时CL_INVALID_COMMAND_QUEUE
- Ubuntu 下的 Cmake 和 Intel IPP 的编译问题
- 删除复制构造函数的 Intel 13.1.2 中不良C++行为的解决方法
- 来自嵌入式应用程序Arduino或Intel Edison的安慰信息?
- C /FORTRAN项目由Visual Studio 2010/Intel 2013创建,将不会在Visual St
- Use Eigen + Intel MKL + Pardiso
- Intel OpenCL编译器:优化结构使用情况
- Intel-Pin:如何将命令行论证传递给二进制文件
- 功能模板与Variadic模板过载:Intel C 编译器版本18产生的结果不同于其他编译器.英特尔是错误的
- 如何将现有的矢量化函数与Intel编译器自动化的现有标量函数相关
- 如何从Intel MFT编码器的D11纹理创建IMFSample
- OpenCL could not found Intel HD 4000
- C STD ::排序Intel编译器错误:访问违规
- 静态联系Intel TBB的问题
- 如何从C 代码中检测Intel快速同步的存在
- Compile Eigen + Intel MKL with CMake
- OpenMPI MPI_Send vs Intel MPI MPI_Send
- Intel Pin调用应用程序中的函数
- gcc-5.2 cilk加上卸载到intel gfx硬件