我正在使用Ubuntu 14.04。
如果是:
我需要哪个icc版本? (我可以用gcc吗?)
支持哪些英特尔处理器?
答案 0 :(得分:2)
据我所知,您只能在Intel MIC / Xeon Phi上卸载OpenMP代码。
但是在(接近?)未来的OpenMP 4应该提供这种功能(见post)。
因此,我认为英特尔高清显卡上的GPGPU只能用OpenCL和英特尔CILK完成。
答案 1 :(得分:0)
某些OpenMP 4构造使用英特尔C / C ++编译器在英特尔GPU上运行。
我在Xeon E3上测试了以下代码,可能是Haswell(v3)代,以及英特尔编译器版本15或16(可能是后者)。我在Linux上测试过,发现它在Mac上不受支持。
void vadd4(int n, float * RESTRICT a, float * RESTRICT b, float * RESTRICT c)
{
#if defined(_OPENMP) && (_OPENMP >= 201307)
//#pragma omp target teams distribute map(to:n,a[0:n],b[0:n]) map(from:c[0:n])
#pragma omp target map(to:n,a[0:n],b[0:n]) map(from:c[0:n])
#pragma omp parallel for simd
#else
#warning No OpenMP target/simd support!
#pragma omp parallel for
#endif
for(int i = 0; i < n; i++)
c[i] = a[i] + b[i];
}
我用来评估英特尔GPU计算软件的完整测试代码是https://github.com/jeffhammond/HPCInfo/blob/master/openmp/offload/test_vadd.c。
不幸的是,distribute
目标不支持teams
和-qopenmp-offload=gfx
,因此需要一些预处理来生成功能可移植的代码。
其他文件包括:
免责声明:我在英特尔工作,但具有研究能力。我不负责实施或支持英特尔编译器或英特尔GPU软件。