gcc-5.2 cilk plus 卸载到 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 $@
据我所知,GCC 不支持卸载编译指示,因此无法执行此操作。实际上,警告消息明确表示这是一个未知的编译指示。
"Full support for Cilk Plus has been added to the GCC compiler."这意味着完全支持仅cilk plus的语言扩展。 Gcc 根本无法卸载到英特尔集成显卡。据报道,OpenMP 可以卸载到 Xeon Phi 协处理器和 nvidia 显卡。
我们可以使用带有 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 $@
据我所知,GCC 不支持卸载编译指示,因此无法执行此操作。实际上,警告消息明确表示这是一个未知的编译指示。
"Full support for Cilk Plus has been added to the GCC compiler."这意味着完全支持仅cilk plus的语言扩展。 Gcc 根本无法卸载到英特尔集成显卡。据报道,OpenMP 可以卸载到 Xeon Phi 协处理器和 nvidia 显卡。