我希望获得cuInit返回的结果的可读描述。我发现每个页面都建议使用cudaGetErrorString来实现此目的,但这会导致错误:
error: cannot convert CUresult {aka cudaError_enum} to cudaError_t
{aka cudaError} for argument 1 to const char* cudaGetErrorString(cudaError_t)
CUresult和cudaError之间有什么区别?我可以用什么函数来解释前者?
答案 0 :(得分:8)
LIBRARY RETURN TYPE VALUES
CUDA Driver CUresult enum cudaError_enum in cuda.h
CUDA Runtime cudaError_t enum cudaError in driver_types.h
CUDA Runtime提供函数cudaGetErrorString,用于将cudaError枚举值转换为字符串。
CUDA Driver API不提供返回字符串的功能。
CUresult和cudaError_t的错误名称和值不匹配。
NVIDIA目前不提供用于为CUresult返回错误字符串的库。只需几分钟就可以将cuda.h中的数据转换为函数。
答案 1 :(得分:7)
当前的驱动程序API作为编写的时间支持将CUresult转换为其字符串表示和描述。
来自Driver API doc:
CUresult cuGetErrorName ( CUresult error, const char** pStr )
Gets the string representation of an error code enum name.
CUresult cuGetErrorString ( CUresult error, const char** pStr )
Gets the string description of an error code.