aclrtSetExceptionInfoCallback
函数功能
设置异常回调函数。
约束说明
- 您需要在执行异步任务之前,设置异常回调函数,当Device上的任务执行异常时,系统会向用户设置的异常回调函数中传入一个包含任务ID、Stream ID、线程ID、Device ID以及错误码的aclrtExceptionInfo结构体指针,并执行回调函数,用户可以再分别调用aclrtGetTaskIdFromExceptionInfo、aclrtGetStreamIdFromExceptionInfo、aclrtGetThreadIdFromExceptionInfo、aclrtGetDeviceIdFromExceptionInfo、aclrtGetErrorCodeFromExceptionInfo接口获取产生异常的任务ID、Stream ID、线程ID、Device ID以及错误码,便于定位问题。
使用场景举例:例如,在调用aclopExecuteV2接口前,调用aclrtSetExceptionInfoCallback接口设置异常回调函数,当算子在Device执行异常时,系统会向用户设置的异常回调函数中传入一个包含任务ID、Stream ID、线程ID、Device ID以及错误码的aclrtExceptionInfo结构体指针,并执行回调函数。
- 如果多次设置异常回调函数,以最后一次设置为准。
- 如果想清空回调函数,可调用aclrtSetExceptionInfoCallback接口,将入参设置为空指针。
函数原型
aclError aclrtSetExceptionInfoCallback(aclrtExceptionInfoCallback callback)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
callback |
输入 |
指定要注册的回调函数。 回调函数的函数原型为: typedef void (*aclrtExceptionInfoCallback)(aclrtExceptionInfo *exceptionInfo); |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见AI Core异常信息获取。
父主题: 异常处理