以下代码广泛用于GPU全局内存分配:
float *M;
cudaMalloc((void**)&M,size);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我们必须将指针传递给指向cudaMalloc的指针,以及为什么它的设计不像:
float *M;
cudaMalloc((void*)M,size);
Run Code Online (Sandbox Code Playgroud)
感谢任何简单的描述!
cudaMalloc需要将指针的值写入M(不是*M),因此M必须通过引用传递.
另一种方法是以经典malloc方式返回指针.不像malloc,但是,cudaMalloc返回一个错误状态,像所有的CUDA运行时函数.