我想知道使用该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?