我正在使用 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";
}
我的编译字符串如下:
pgc++ -omp -ta=tesla,pinned,cc60 -Minfo=accel -fast test2.cpp
编译成功,但它缺少我使用 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
本身似乎并没有产生任何有用的东西。