Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ PGI上OpenMP目标指令的结果_C++_Openmp_Pgi - Fatal编程技术网

C++ PGI上OpenMP目标指令的结果

C++ PGI上OpenMP目标指令的结果,c++,openmp,pgi,C++,Openmp,Pgi,我正在使用PGI编译以下程序,该程序使用OpenMP的目标指令将工作卸载到GPU: #include <iostream> #include <cmath> int main(){ const int SIZE = 400000; double *m; m = new double[SIZE]; #pragma omp target teams distribute parallel for for(int i=0;i<SIZE;i++)

我正在使用PGI编译以下程序,该程序使用OpenMP的目标指令将工作卸载到GPU:

#include <iostream>
#include <cmath>

int main(){
  const int SIZE = 400000;

  double *m;
  m = new double[SIZE];

  #pragma omp target teams distribute parallel for
  for(int i=0;i<SIZE;i++)
    m[i] = std::sin((double)i);

  for(int i=0;i<SIZE;i++)
    std::cout<<m[i]<<"\n";
}
编译成功,但它缺少OpenACC的一系列输出,这些输出告诉我编译器对指令的实际操作,如:

main:
  8, Accelerator kernel generated
     Generating Tesla code
     11, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */
  8, Generating implicit copyout(m[:400000])
如何获取OpenMP的类似信息<代码>-Minfo本身似乎没有产生任何有用的结果。

“-Minfo”(与“-Minfo=all”相同)或“-Minfo=mp”将为OpenMP编译提供编译器反馈消息

尽管如此,PGI仅在我们的LLVM后端编译器中支持OpenMP 4.5指令。默认情况下,在基于IBM Power的系统上或作为x86上LLVM beta编译器的一部分,这些工具都可用。x86测试版编译器可以在上找到,但需要专业版许可证


此外,我们当前的OpenMP 4.5仅针对多核CPU。我们也在进行GPU目标卸载,但此支持暂时无法提供。

谢谢!我一直希望使用OpenMP 4.5在我的GPU上获得更细粒度的控制。它似乎还没有在任何编译器上得到很好的支持:-/
main:
  8, Accelerator kernel generated
     Generating Tesla code
     11, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */
  8, Generating implicit copyout(m[:400000])