ArrayFire seq to int c++



想象一个带有seq j ...

的gfor

如果我需要将实例j的值用作索引,我可以这样做?

类似:

vector<double> a(n);
gfor(seq j, n){
    //Do some calculation and save this on someValue
    a[j] = someValue;
}

有人可以(再次(帮助我吗?谢谢。

我找到了一个解决方案...

如果有人有更好的选择,请随时发布...

首先,创建一个与GFOR实例相同的SEQ。然后,在数组中转换该SEQ。现在,在数组上以该行的值(等于索引(

seq sequencia(0, 200);
af::array sqc = sequencia;
//Inside the gfor loop
countLoop = (int) sqc(j).scalar<float>();

您的方法有效,但是断开 GFORS 并行化将索引转换为标量强制将其从GPU写回到主机上,从GPU。

您想这样做更像:

af::array a(200);
gfor(seq j, 200){
   //Do some calculation and save this on someValue
   a[j] = af::array(someValue);  // for someValue a primitive type, say float
}
// ... Now we're safe outside the parallel loop, let's grab the array results
float results[200];
a.host(results)  // Copy array from GPU to host, populating a c-type array

相关内容

  • 没有找到相关文章

最新更新