aclrtResetDevice 返回错误 507007
aclrtResetDevice()
返回错误 507007,查看日志~/ascend/log/debug/plog/plog-PID_yyyyMMddhhmmssxxx.log
给出如下提示:
[ERROR] RUNTIME(PID,main):yyyy-MM-dd-hh:mm:ss.xxx.yyy [api_impl.cc:1777]9277 DeviceReset:DeviceReset context release failed, userDevId=0, retCode=0x7070003
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [api_impl.cc:1787]9277 DeviceReset:report error module_type=0, module_name=EE9999
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [api_impl.cc:1787]9277 DeviceReset:DeviceReset failed, deviceId=0, retCode=0x7070003
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [logger.cc:692]9277 DeviceReset:Device reset failed, device_id=0.
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [api_c.cc:1567]9277 rtDeviceReset:ErrCode=507007, desc=[context release error], InnerCode=0x7070003
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [error_message_manage.cc:49]9277 FuncErrorReason:report error module_type=3, module_name=EE8888
[ERROR] RUNTIME(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [error_message_manage.cc:49]9277 FuncErrorReason:rtDeviceReset execute failed, reason=[context release error]
[ERROR] ASCENDCL(PID,main):yyyy-mm-dd-hh:mm:ss.xxx.yyy [device.cpp:115]9277 aclrtResetDevice: reset device 0 failed, runtime result = 507007.`
原因:
根据昇腾文档中的流程图,如果没有显式调用aclrtSetDevice()
,而是手动调用的创建的Context和Stream,就不要调用aclrtResetDevice()
。
文当并未明确说明未调用setDevice而调用resetDevice的后果,但后果确实很严重,可知Ascend CL 内部并未作相应的处理。