CUDA 笔记

CUDA笔记

cuda 内存管理

  • cuda通过内存分配、数据传递、内存初始化、内存释放进行内存管理;
Standard C Function CUDA C Function
malloc cudaMalloc
memcpy cudaMemcpy
memset cudaMemset
free cudaFree

内存分配

  • 主机内存分配:extern void malloc(unsigned int num_bytes);
    代码:float
    fpHost_A;
    fpHost_A = (float*)malloc(nBytes);
  • 设备内存分配:
    代码: float fpDevice_A;
    cudamalloc((float
    *)&fpDevice_A, nBytes); (能在主机中调用,也能在设备中调用)
    注意:传入的地址是双重指针;

内存拷贝

  • 主机数据拷贝:void * memcpy(void* dest, const void * src, size_t n);
    memcpy((void*) d, (void*) s, nBytes);
  • 设备数据拷贝:
    代码: cudaMemcpy(Device_A, Host_A, nBytes, cudaMemcpyHostToHost) (只能在主机中调用)

你可能感兴趣的:(cuda编程,c++)