2
我有下面的代碼片段Cuda的推力min_element崩潰
uint64_t myvec[] = {1,2,3,4,5};
int main(void)
{
uint64_t* dev;
cudaMalloc(&dev, 5*sizeof(uint64_t));
cudaMemcpy(dev,myvec,sizeof(uint64_t)*5,cudaMemcpyHostToDevice);
uint64_t* min_iter = thrust::min_element(thrust::device, dev, dev+5);
return 0;
}
此代碼崩潰,段錯誤,因爲在設備min_element的。
但這段代碼似乎工作,如果我在主機
uint64_t* min_iter = thrust::min_element(thrust::host, myvec, myvec+5);
執行它,我不知道什麼是錯的。我正在使用cuda 7.5。這是一個錯誤?
這似乎是一個錯誤:https://github.com/thrust/thrust/issues/776。你可以用這個方法解決它:'uint64_t * min_iter = thrust :: min_element(thrust :: device,thrust :: device_pointer_cast(dev),thrust :: device_pointer_cast(dev + 5))。get();' –