aclrtGetErrorVerbose

Note: This API is reserved and not supported currently.

Description

Obtains the detailed error information after a device fault occurs. This API must be called after a fault event is obtained and before task submission is terminated.

Prototype

aclError aclrtGetErrorVerbose(int32_t deviceId, aclrtErrorInfo *errorInfo);

Parameters

Parameter

Input/Output

Description

deviceId

Input

Device ID.

The value must be the same as the value of Device ID in aclrtSetDevice.

errorInfo

Output

Error message.

typedef enum { 
    ACL_RT_NO_ERROR = 0,          // No error
    ACL_RT_ERROR_MEMORY = 1,      // Memory error. Not supported currently.
    ACL_RT_ERROR_L2 = 2,          // L2 cache error
    ACL_RT_ERROR_AICORE = 3,      // AI Core error
    ACL_RT_ERROR_LINK = 4,        // Not supported currently
    ACL_RT_ERROR_OTHERS = 0xFFFF, // Other errors
} aclrtErrorType;
typedef enum aclrtAicoreErrorType { 
    ACL_RT_AICORE_ERROR_UNKOWN, // Unknown error
    ACL_RT_AICORE_ERROR_SW, // Software check recommended
    ACL_RT_AICORE_ERROR_HW_LOCAL, // Device hardware check recommended
} aclrtAicoreErrorType;
#define ACL_RT_MEM_UCE_INFO_MAX_NUM 20
typedef struct {
    size_t arraySize; // Size of the memUceInfoArray array
    aclrtMemUceInfo memUceInfoArray[ACL_RT_MEM_UCE_INFO_MAX_NUM]; // Array of virtual addresses of a memory UCE
} aclrtMemUceInfoArray;
typedef union aclrtErrorInfoDetail { 
    aclrtMemUceInfoArray uceInfo; // Memory UCE
    aclrtAicoreErrorType aicoreErrType; // AI Core error
} aclrtErrorInfoDetail; 
typedef struct aclrtErrorInfo { 
    uint8_t tryRepair;           // Whether repairing is required. 0: no; 1: yes
    uint8_t hasDetail;           // Whether error details are available. 0: no; 1: yes
    uint8_t reserved[2];         // Reserved parameter
    aclrtErrorType errorType;    // Error type
    aclrtErrorInfoDetail detail; // Error details
} aclrtErrorInfo;

Returns

0 on success; else, failure. For details, see aclError.