CUDA运行时具有便捷功能cudaGetErrorString(cudaError_t error)
,可将错误枚举转换为可读的字符串。 cudaGetErrorString
宏中使用了CUDA_SAFE_CALL(someCudaFunction())
,许多人将其用于CUDA错误处理。
我现在熟悉cuBLAS,我想为cuBLAS创建类似于CUDA_SAFE_CALL
的宏。为了使宏的打印输出有用,我想在cuBLAS中添加类似于cudaGetErrorString
的内容。
cuBLAS中是否有等效的cudaGetErrorString()
?或者,是否有任何cuBLAS用户编写了这样的功能?
最佳答案
在CUDA 5.0中,假设您已安装示例,则存在一个文件..../samples/common/inc/helper_cuda.h,其中包含以下内容:
#ifdef CUBLAS_API_H_
// cuBLAS API errors
static const char *_cudaGetErrorEnum(cublasStatus_t error)
{
switch (error)
{
case CUBLAS_STATUS_SUCCESS:
return "CUBLAS_STATUS_SUCCESS";
case CUBLAS_STATUS_NOT_INITIALIZED:
return "CUBLAS_STATUS_NOT_INITIALIZED";
case CUBLAS_STATUS_ALLOC_FAILED:
return "CUBLAS_STATUS_ALLOC_FAILED";
case CUBLAS_STATUS_INVALID_VALUE:
return "CUBLAS_STATUS_INVALID_VALUE";
case CUBLAS_STATUS_ARCH_MISMATCH:
return "CUBLAS_STATUS_ARCH_MISMATCH";
case CUBLAS_STATUS_MAPPING_ERROR:
return "CUBLAS_STATUS_MAPPING_ERROR";
case CUBLAS_STATUS_EXECUTION_FAILED:
return "CUBLAS_STATUS_EXECUTION_FAILED";
case CUBLAS_STATUS_INTERNAL_ERROR:
return "CUBLAS_STATUS_INTERNAL_ERROR";
}
return "<unknown>";
}
#endif
先前版本的CUDA SDK(示例)中可能存在类似的内容。这不是回答“是否内置了东西”这个问题,而是回答“任何cuBLAS用户是否编写过这样的函数?”
关于cuda - 相当于cuBLAS的cudaGetErrorString吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13041399/