三、常用cuda函数
3.2 错误检查
有许多 CUDA 函数(如:内存管理函数)会返回类型为 cudaError_t 的值,该值可用于检查调用函数时是否发生错误
cudaError_t err;
err = cudaMallocManaged(&a, N) // Assume the existence of `a` and `N`
if (err != cudaSuccess) // `cudaSuccess` is provided by CUDA
printf("Error: %s\n", cudaGetErrorString(err)); // `cudaGetErrorString` is provided by CUDA
启动定义为返回 void 的核函数后,将不会返回类型为 cudaError_t 的值。为检查启动核函数时是否发生错误(如:启动配置错误),CUDA 提供 cudaGetLastError 函数,该函数会返回类型为cudaError_t 的值
someKernel<<<1, -1>>>(); // -1 is not a valid number of threads.
cudaError_t err;
err = cudaGetLastError(); // `cudaGetLastError` will return the error from above.
if (err !