我有以下代码段
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。这是一个错误吗?