CUDA错误检查

CUDA错误检查

CUDA api执行结束回返回一个返回值,用于标记api的执行状态。

错误检查函数

  • 获取错误代码的名称:cudaGetErrorName
  • 获取错误代码的描述信息:cudaGetErrorString
  1. 在调用cuda运行api时,调用ErrorCheck函数进行包装
  2. 参数filename一般使用__FILE__;参数lineNumber一般使用__LINE__;
  3. 错误函数返回运行时API调用的错误代码。
//错误检查函数代码
cudaError_t ErrorCheck(cudaError_t error_code, const char* filename, int lineNumber)
{
	if(error_code != cudaSuccess)
	{
		printf("CUDA error:\r\code=%d, name=%s, descripion=%s\r\nfile=%s,line=%d\r\n", error_code, cudaGetErrorName(error_code), cudaGetErrorString(error_code), filename, lineNumber);
		return error_code;
	}
	return error_code;
}

检查核函数

  • 错误检测函数问题:不能捕捉调用核函数中存在的相关错误
  • 捕捉调用核函数可能发生错误的方法:
    ErrorCheck(cudaGetLastError(), FILE_, LINE);
    ErrorCheck(cudaDeviceSynchronize(), FILE, LINE);
  • 核函数定义:
    global void kernel_function(argument arg);

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