关于cuda中的变量定义

时间:2013-07-13 07:14:50

标签: data-structures cuda definition thrust

我必须从文件加载数据。 每个样本都是20维的。

所以我使用这个数据结构来帮助我:

class DataType
{
    vector<float> d;
}

但是当我使用这个变量定义时,它无法工作。

thrust::host_vector<DataType> host_input;
// after initializing the host input;
thrust::device_vector<DataType> device_input = host_input;
for(unsigned int i = 0; i < device_input.size(); i++)
    for(unsigned int j = 0; j < dim; j++)
        cout<<device_input[i].d[j]<<end;

它不起作用。编译器告诉我,我不能将vector(host)用于device_input。因为device_input将在设备(gpu)上实现,而vector将在CPU上实现。 那么,我给出DataType的正确定义的合适方式是什么?

1 个答案:

答案 0 :(得分:2)

std::vector需要主机端动态内存分配,因此无法在设备端使用。

这应该有用。

class DataType
{
    float d[20];
}