【发布时间】:2017-12-23 19:30:07
【问题描述】:
我有在 CPU 上运行的 OpenMP 代码,通过让每个线程管理由线程 ID 号寻址的内存,可通过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";
}
【问题讨论】:
标签: g++ gpu openmp pgi offloading