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/

10-11 18:03