【发布时间】:2014-01-27 21:20:00
【问题描述】:
我正在使用 CAPS OpenACC 编译器。我尝试在 OpenACC 编译指示行中的 struct 数据类型内使用动态数组。我的代码是这样的:
struct Structure{
int val[n];
int length;
int *valdyn;
};
#pragma acc parallel copyin(sa,sb) copyout(c[0:n])
{
#pragma acc loop
for (int i = 0; i < n; i++)
c[i] = sa.valdyn[i] + sb.valdyn[i];
}
编译成功。但是当我尝试运行时,我得到了这些错误
terminate called after throwing an instance of 'hmpperr::DeviceError'
what(): cuCtxSynchronize() failed: Launch failed (700)
所以我的问题是,有什么方法可以将 struct 数据类型与 OpenACC 一起使用? 此外,我的情况也适用于 struct in struct 这样的:
struct Structure{
int val[20];
int length;
struct Other_Struct *Residue ;
int *valdyn;
};
【问题讨论】:
标签: c struct cuda gpgpu openacc