相当于cuBLAS的cudaGetErrorString?

sol*_*les 7 cuda gpu nvidia matrix-multiplication cublas

CUDA运行时具有便捷功能cudaGetErrorString(cudaError_t error),可将错误枚举转换为可读字符串.cudaGetErrorString用于CUDA_SAFE_CALL(someCudaFunction())很多人用于CUDA错误处理的宏.

我现在熟悉cuBLAS,我想创建一个类似于CUDA_SAFE_CALLcuBLAS 的宏.为了使我的宏的打印输出有用,我想cudaGetErrorString在cuBLAS中有类似的东西.

是否有相当于cudaGetErrorString()cuBLAS?或者,有任何cuBLAS用户编写这样的功能?

Rob*_*lla 6

在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
Run Code Online (Sandbox Code Playgroud)

在以前版本的CUDA SDK(Samples)中可能有类似的东西.如果您提出这个问题,这不是对"内置的问题"的回答,而是回答您的问题"是否有任何cuBLAS用户编写了这样的函数?"

  • 太棒了!我最终在答案中自己编写了大致相同的代码。:) (2认同)