Как отбрасывать тягу:: device_vector <int> к необработанному указателю
У меня есть тяга device_vector. Я хочу передать его необработанному указателю, чтобы передать его ядру. Как я могу это сделать?
thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)
Ответ 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