cuda - 相当于cuBLAS的cudaGetErrorString吗?

标签 cuda gpu nvidia matrix-multiplication cublas

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/

相关文章:

CUDA内核比CPU慢

c++ - CUDA矩阵乘法,执行时间长

cuda - 推力device_malloc和device_new

python - 使用 python ctypes 与 nvapi 接口(interface)(跟进演示代码)

linux - ffmpeg 硬件解码/编码转码

debugging - NVIDIA Parallel Nsight 和 OpenCL

c++ - Cuda:将主机数据复制到共享内存阵列

python - Tensorflow-GPU 不使用带有 CUDA、CUDNN 的 GPU

objective-c - 如何确定应用程序是否正在使用 GPU

cuda - 在 GPU 上使用 CUDA 生成笛卡尔积