Об определении переменной в 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];
}