我想知道使用该declare target
指令的原因是什么。我可以简单地使用target {, data} map (to/from/tofrom ...)
来指定设备应该使用哪些变量。至于函数,从target
区域调用的函数是否必须声明为目标?假设,我有以下代码:
int data[N];
#pragma omp target
{
#pragma omp parallel for
for (int i=0; i<N; i++)
data[i] = my_function(i);
}
是否需要用 包围my_function()
声明/定义declare target
?