本篇为学习笔记,学习内容为2019年参加英伟达GTC会议的课程
需要提下学习CUDA的目的,就是为了加速自己的应用,相比于CPU-only的应用程序,可以用GPU实现较大加速,当然程序首先是计算密集型而非...launch kernel
C代码用gcc编译,cuda代码用nvcc编译,nvcc内部会调用gcc
启动核函数的配置 > thread是最小执行单位,由threads组成block,多个block...:cudaMallocManaged
关于异常处理:
一些cuda函数的返回值类型为cudaError_t, 可用来检查错误cudaGetErrorString(err)
无返回值的kernel, 使用...cudaGetLastError() 返回cudaError_t类型
另外,如果有一组kernel出错,因为kernel执行是异步的,为了排查错误,可以调用同步函数如cudaDeviceSynchronize...CPU函数是异步的,而异步拷贝,不仅对CPU,对GPU的kernel也是异步的,可以达到边计算边拷贝数据的目的,从而掩盖数据传输时间,尽量挖掘GPU计算能力