cuda内存申请语法问题
买了cuda 高性能运算那本书,在学习。
那个example1里面,
主机端的内存申请:
float* h_idata=(float*)malloc(mem_size);
这个很好懂,跟c标准上的一样,没问题。
但是后面device端的内存申请
float* d_idata;
CUDA_SAFE_CALL(cudaMalloc((void**)&d_idata,mem_size));
这里不明白,为什么一定要加个&引用然后强制转换指针的指针类型呢?这个语法的含义和作用是什么?
直接(void*)d_data这样不行么?
而且这个是针对1维数组的申请吧。那如果2维数组又是如何?