示例#1
0
/// Send human-readable representation of CUresult to the output stream.
inline std::ostream& operator<<(std::ostream &os, cusparseStatus_t rc) {
    os << "CUSPARSE Error (";
#define VEXCL_CUDA_ERR2TXT(e) case e: os << static_cast<int>(e) << " - " << #e; break
    switch(rc) {
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_SUCCESS);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_NOT_INITIALIZED);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_ALLOC_FAILED);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_INVALID_VALUE);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_ARCH_MISMATCH);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_MAPPING_ERROR);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_EXECUTION_FAILED);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_INTERNAL_ERROR);
        VEXCL_CUDA_ERR2TXT(CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED);
        default:
            os << "Unknown error";
    }
#undef VEXCL_CUDA_ERR2TXT
    return os << ")";
}
示例#2
0
文件: error.hpp 项目: crycrane/vexcl
/// Send human-readable representation of CUresult to the output stream.
inline std::ostream& operator<<(std::ostream &os, CUresult rc) {
    os << "CUDA Driver API Error (";
#define VEXCL_CUDA_ERR2TXT(e) case e: os << static_cast<int>(e) << " - " << #e; break
    switch(rc) {
        VEXCL_CUDA_ERR2TXT(CUDA_SUCCESS);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_VALUE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_OUT_OF_MEMORY);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_INITIALIZED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_DEINITIALIZED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PROFILER_DISABLED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PROFILER_NOT_INITIALIZED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PROFILER_ALREADY_STARTED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PROFILER_ALREADY_STOPPED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NO_DEVICE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_DEVICE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_IMAGE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_CONTEXT);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_CONTEXT_ALREADY_CURRENT);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_MAP_FAILED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_UNMAP_FAILED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_ARRAY_IS_MAPPED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_ALREADY_MAPPED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NO_BINARY_FOR_GPU);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_ALREADY_ACQUIRED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_MAPPED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_MAPPED_AS_ARRAY);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_MAPPED_AS_POINTER);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_ECC_UNCORRECTABLE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_UNSUPPORTED_LIMIT);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_CONTEXT_ALREADY_IN_USE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PEER_ACCESS_UNSUPPORTED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_SOURCE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_FILE_NOT_FOUND);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_SHARED_OBJECT_INIT_FAILED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_OPERATING_SYSTEM);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_INVALID_HANDLE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_FOUND);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_READY);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_LAUNCH_FAILED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_LAUNCH_TIMEOUT);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PEER_ACCESS_NOT_ENABLED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_CONTEXT_IS_DESTROYED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_ASSERT);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_TOO_MANY_PEERS);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_PERMITTED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_NOT_SUPPORTED);
        VEXCL_CUDA_ERR2TXT(CUDA_ERROR_UNKNOWN);
    default:
        os << "Unknown error";
    }
#undef VEXCL_CUDA_ERR2TXT
    return os << ")";
}