Подтвердить что ты не робот

Как отбрасывать тягу:: device_vector <int> к необработанному указателю

У меня есть тяга device_vector. Я хочу передать его необработанному указателю, чтобы передать его ядру. Как я могу это сделать?

thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)
4b9b3361

Ответ 1

Вы можете сделать это, используя thrust::raw_pointer_cast. Класс вектора устройства имеет функцию-член data, которая возвращает thrust::device_ptr в память, хранящуюся в векторе, который может быть отличен, например:

thrust::device_vector<int> dv(10);

int * dv_ptr = thrust::raw_pointer_cast(dv.data());

kernel<<<bl,tpb>>>(dv_ptr)

(отказ от ответственности: написан в браузере, никогда не компилируется, никогда не тестировался). Существует полный рабочий пример этого, связанного с тягой: unwrap_pointer.cu