我想让以下内核代码并行,在下面的代码中,a 的大小为 n,b 和 c 为 8*n,d 的值小于 n(例如:3*n/4)
j=0;
for(i=0;i<n;i++)
{
if (a[b[i]]!=a[c[i]])
{
d[j]=b[i];
j++;
}
}
由于 a 和 d 的元素数量不同,我面临给出 i=get_global_id(0) 的问题,因为这样做,在 d 的某些元素中,如果“if”条件,则不会放置任何内容违反……!那么我该如何做并行..?如果不是这样,如果我将值放置在 d 中的位置存储在不同的数组中,是否可以删除内核中 d 的“无值”位置..?