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 |
|---|---|
√ |
|
√ |
|
√ |
|
☓ |
|
☓ |
|
☓ |
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 andAtlas 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.
Parent topic: Exception Handling