aclrtGetErrorVerbose

须知:本接口为预留接口,暂不支持。

功能说明

用于在发生设备故障后获取详细错误信息。此接口必须在获取故障事件之后,提交任务中止之前调用。

函数原型

aclError aclrtGetErrorVerbose(int32_t deviceId, aclrtErrorInfo *errorInfo);

参数说明

参数名 输入/输出 说明
deviceId 输入 Device ID。
aclrtSetDevice接口中Device ID保持一致。
errorInfo 输出 错误信息。
typedef enum {
ACL_RT_NO_ERROR = 0, // 无错误
ACL_RT_ERROR_MEMORY = 1, // 内存错误,暂不支持
ACL_RT_ERROR_L2 = 2, // L2 Cache二级缓存错误
ACL_RT_ERROR_AICORE = 3, // AI Core错误
ACL_RT_ERROR_LINK = 4, // 暂不支持
ACL_RT_ERROR_OTHERS = 5, // 其它错误
} aclrtErrorType;

typedef enum aclrtAicoreErrorType {
ACL_RT_AICORE_ERROR_UNKOWN, // 未知错误
ACL_RT_AICORE_ERROR_SW, // 建议排查软件错误
ACL_RT_AICORE_ERROR_HW_LOCAL, // 建议排查当前Device的硬件错误
} aclrtAicoreErrorType;

#define ACL_RT_MEM_UCE_INFO_MAX_NUM 20
typedef struct {
size_t arraySize; // memUceInfoArray数组大小
aclrtMemUceInfo memUceInfoArray[ACL_RT_MEM_UCE_INFO_MAX_NUM]; // 内存UCE的错误虚拟地址数组
} aclrtMemUceInfoArray;

typedef union aclrtErrorInfoDetail {
aclrtMemUceInfoArray uceInfo; // 内存UCE(uncorrect error)
aclrtAicoreErrorType aicoreErrType; // AI Core错误
} aclrtErrorInfoDetail;

typedef struct aclrtErrorInfo {
uint8_t tryRepair; // 是否需要修复 ,0表示无需修复,1表示需修复
uint8_t hasDetail; // 是否有详细报错信息,0表示没有,1表示有
uint8_t reserved[2]; // 预留参数
aclrtErrorType errorType; // 错误类型
aclrtErrorInfoDetail detail; // 错误详细信息
} aclrtErrorInfo;

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError