关于标准的CUDA内存分配模型,有一个简短的问题:
double* x_device;
cudaMalloc(&x_device,myArraySize);
变量
x_device
是一个指向双精度浮点数的指针。在我调用cudaMalloc之后,x_device现在指向cuda设备上的内存位置吗?换句话说,*x_device
会导致段错误,因为我们无法直接从主机访问设备内存。顺带一提,编译器没有抱怨我没有使用
(void**)&x_device
,这是必需的吗?我有时在示例中看到它,有时不看到。谢谢!