Об определении переменной в cuda

Я должен загрузить данные из файла. Каждый образец 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;

Это не работает. Компилятор сказал мне, что я не могу использовать вектор (хост) в device_input. Потому что device_input будет реализован на устройстве (gpu), а vector будет реализован на CPU. Тогда каков подходящий для меня способ дать правильное определение DataType?

1 ответ

Решение

std::vector требует динамического выделения памяти на стороне хоста, поэтому его нельзя использовать на стороне устройства.

Это должно работать.

class DataType
{
    float d[20];
}
Другие вопросы по тегам