У меня есть код OpenMP, который работает на ЦП, так как каждый поток управляет памятью, адресованной номером идентификатора потока, доступного через omp_get_thread_num()
. Это хорошо работает на процессоре, но может ли это работать на графическом процессоре?
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";
}