aclrtGetErrorVerbose

Note: This API is for trial use and may be changed in later versions. It is not available in production environments.

Applicable Products

Product

Supported

Ascend 950PR/Ascend 950DT

√

Atlas A3 training products/Atlas A3 inference products

√

Atlas A2 training products/Atlas A2 inference products

√

Atlas 200I/500 A2 inference products

☓

Atlas inference products

☓

Atlas training products

☓

Function

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

1
aclError aclrtGetErrorVerbose(int32_t deviceId, aclrtErrorInfo *errorInfo);

Parameters

Parameter

Input/Output

Description

deviceId

Input

Device ID.

The value must be the same as the device ID in aclrtSetDevice.

errorInfo

Output

Error message.

typedef enum { 
    ACL_RT_NO_ERROR = 0,          // No error
    ACL_RT_ERROR_MEMORY = 1,       // Memory error
    ACL_RT_ERROR_L2 = 2,          // L2 buffer error
    ACL_RT_ERROR_AICORE = 3,      // AI Core error
    ACL_RT_ERROR_LINK = 4,        // Network error
    ACL_RT_ERROR_L3_PORT = 5,     // L3 port error
    ACL_RT_ERROR_OTHERS = 0xFFFF, // Other errors
} aclrtErrorType;
typedef enum aclrtAicoreErrorType { 
    ACL_RT_AICORE_ERROR_UNKNOWN,   // 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 where a memory UCE occurs
} aclrtMemUceInfoArray;
typedef union aclrtErrorInfoDetail { 
aclrtMemUceInfoArray uceInfo;        //  Memory UCE information
    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; otherwise, failure. For details, see aclError.

Restrictions

  • If the minimum timeout interval queried by calling aclrtGetOpTimeoutInterval is less than 100 ms, the detailed fault information returned by this API may be inaccurate.
  • For the Atlas A3 training products/Atlas A3 inference products and Atlas A2 training products/Atlas A2 inference products, only ACL_RT_NO_ERROR (no error), ACL_RT_ERROR_MEMORY (memory error), and ACL_RT_ERROR_OTHERS (other errors) can be obtained.