cudaSuccess:表示操作成功,其值为0。
cudaErrorInvalidValue:表示函数接收到了一个无效的值,其值为1。
cudaErrorMemoryAllocation:表示内存分配失败,其值为2。
cudaErrorInitializationError:表示初始化错误,其值为3。
cudaErrorCudartUnloading:表示CUDA运行时正在卸载,其值为4。
……
当调用这类带返回码的CUDA函数时,我们通常会将返回的错误码与cudaSuccess进行比较,以判断操作是否成功。然而,仅仅记录错误码可能并不足以帮助我们迅速定位问题,因为错误码本身是一个数字,要理解其背后的含义,通常需要查阅文档。
为了更直观地记录错误信息,CUDA提供了两个非常有用的函数 cudaGetErrorName 和 cudaGetErrorString:
cudaGetErrorName:
__host____device__const char \*cudaGetErrorName(cudaError_t error)
cudaGetErrorName 函数接受一个cudaError_t类型的错误码作为参数,并返回与之对应的错误名称。如果传入的错误码不在CUDA定义的错误码列表中,它会返回字符串“unrecognized error code”。
cudaGetErrorString:
__host____device__const