9

我想获得 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 有什么区别,我可以用什么函数来解释前者?

4

2 回答 2

14

在撰写本文时,当前的驱动程序 API确实支持将 CUresult 转换为其字符串表示和描述。

来自驱动程序 API 文档:

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. 

http://docs.nvidia.com/cuda/cuda-driver-api/index.html

于 2014-06-26T08:13:30.627 回答
10
LIBRARY         RETURN TYPE     VALUES
CUDA Driver     CUresult        enum cudaError_enum    in cuda.h
CUDA Runtime    cudaError_t     enum cudaError         in driver_types.h

CUDA 运行时提供函数 cudaGetErrorString 将 cudaError 枚举值转换为字符串。

CUDA Driver API 不提供返回字符串的函数。

CUresult 和 cudaError_t 的错误名称和值不匹配。

NVIDIA 目前不提供用于为 CUresult 返回错误字符串的库。只需几分钟即可将 cuda.h 中的数据转换为函数。

于 2013-02-08T18:02:25.013 回答