CUDA数组和c ++向量

时间:2012-05-18 19:00:09

标签: arrays vector cuda

我是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。到目前为止我所尝试的都失败了。

如果有人对此有一些经验并且有任何想法会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

查看the Thrust模板库,它为主机和设备代码的使用提供了有用的模板。 thrust::device_vector可以像std::vector类比一样使用,但不在设备代码中。