cudaMalloc(void** p, int size):分配size字节的存储器,并将其首地址赋给*p,至于参数为什么是二级指针,可在C语言中找到答案
cudaMallocHost():这个方法是在主机上分配空间,可以加快传输速度,因此在写cuda时,应该使用此函数取代Malloc,参数同上一函数
cudaMemcpy(void* dest,void* source,int size,enum direction):copy size data form. source to dest,direction must be right,you must be careful。关于这个函数要注意的是:如果最后一个参数的类型不匹配也不会出错。
cudaMemcpyToSymbol:将数据复制到__constant__,__device__变量中
cudaMemcpyFormSymbol: 同上相反
CudaThreadSynchronize():强制等待所有在此句之前启动的runtime 任务完成。其实现方式采用的轮询。
__syncthreads():此函数用于保证block内所有线程都运行到调用处,常用它来保证一致性。
cudaMallocPitch(void**,int*,widthInBytes,height):这个函数是在线性内存中分配二维数组,因此在使用时,还是用一维的方式使用。注意,width的单位是字节,而height单位是数据类型,而第二个参数的含义下面一段话说明了。
c语言申请2维内存时,一般是连续存放的。a[y][x]存放在第y*widthofx*sizeof(元素)+x*sizeof(元素)个字节。 但在cuda的global mem