我有 OpenMP 代码,它通过让每个线程管理由线程的 id 号寻址的内存来在 CPU 上工作,可以通过omp_get_thread_num()
. 这在 CPU 上运行良好,但它可以在 GPU 上运行吗?
MWE 是:
#include <iostream>
#include <omp.h>
int main(){
const int SIZE = 400000;
int *m;
m = new int[SIZE];
#pragma omp target
{
#pragma omp parallel for
for(int i=0;i<SIZE;i++)
m[i] = omp_get_thread_num();
}
for(int i=0;i<SIZE;i++)
std::cout<<m[i]<<"\n";
}