我是CUDA的新人,有以下问题吗?我的内核应该计算一个类型:
vector <double *> *my_vector = new vector <double *>();
在我尝试将原始c ++代码更改为cuda之前,它会在循环中计算一个数组[6],然后将其推回到my_vector。
for{
//calculations
double *array = new double[6];
array[0] = data;
array[1] = data;
array[2] = data;
array[3] = data;
array[4] = data;
array[5] = data;
my_vector->push_back(array);
}
我知道使用推力可能会有所帮助,但如果我不使用它,我更喜欢。我想在我的内核中使用2D数组并将数据复制回主机代码,然后使用std :: vector将其复制到my_vector。到目前为止我所尝试的都失败了。
如果有人对此有一些经验并且有任何想法会有很大的帮助。
答案 0 :(得分:1)
查看the Thrust模板库,它为主机和设备代码的使用提供了有用的模板。 thrust::device_vector
可以像std::vector
类比一样使用,但不在设备代码中。