跳到主要内容

函数:get_context

函数:destroy_context

C函数原型aclError aclrtDestroyContext(aclrtContext context)
Python函数ret = acl.rt.destroy_context(context)
函数功能销毁一个Context,释放Context的资源,同步接口。只能销毁通过acl.rt.create_context接口创建的Context。
输入说明context:int,指定需要销毁的Context对象指针地址。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明
参考资源接口调用流程与示例,请参见运行管理资源申请与释放同步等待

父主题: Context管理

函数:set_context

C函数原型aclError aclrtSetCurrentContext(aclrtContext context)
Python函数ret = acl.rt.set_context(context)
函数功能设置线程的Context,同步接口。
输入说明context:int,线程当前的Context对象指针地址。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明- 支持以下场景:
- 如果在某线程(例如:thread1)中调用acl.rt.create_context接口显式创建一个Context(例如:ctx1),则可以不调用acl.rt.set_context接口指定该线程的Context,系统默认将ctx1作为thread1的Context。
- 如果没有调用acl.rt.create_context接口显式创建Context,则系统将默认Context作为线程的Context,此时,不能通过acl.rt.destroy_context接口来释放默认Context。
- 如果多次调用acl.rt.set_context接口设置线程的Context,以最后一次为准。
- 若给线程设置的Context所对应的Device已经被复位,则不能将该Context设置为线程的Context,否则会导致业务异常。
- 推荐在某一线程中创建的Context,在该线程中使用。若在线程A中调用acl.rt.create_context接口创建Context,在线程B中使用该Context,则需由用户自行保证两个线程中同一个Context下同一个Stream中任务执行的顺序。
参考资源接口调用流程,参见多Device场景

父主题: Context管理

函数:get_context

C函数原型aclError aclrtGetCurrentContext(aclrtContext *context)
Python函数context, ret = acl.rt.get_context()
函数功能获取线程的Context,同步接口。 如果用户多次调用acl.rt.set_context接口设置当前线程的Context,则获取的是最后一次设置的Context。
输入说明
返回值说明context:int,表示创建的Context对象指针地址。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: Context管理

函数:get_overflow_status

C函数原型aclError aclrtGetOverflowStatus(void *outputAddr, size_t outputSize, aclrtStream stream)
Python函数ret = acl.rt.get_overflow_status(outputAddr, outputSize, stream)
函数功能获取当前Context下所有Stream上任务的溢出状态,并将状态值拷贝到用户申请的Device内存中。异步接口。
输入说明outputAddr:int,用户申请的Device内存,需通过acl.rt.malloc接口申请。如果需要在Host侧查看数据,可调用acl.rt.memcpyacl.rt.memcpy_async接口,将Device侧的数据传输到Host侧。 outputSize:int,需申请的Device内存大小,单位Byte,固定大小为64Byte。 stream:int,指定Stream的指针地址,用于下发溢出状态查询任务。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明本接口是异步接口,在调用之后,需调用acl.rt.synchronize_stream接口阻塞应用程序运行,直到指定Stream中的溢出状态查询任务已完成。

父主题: Context管理

函数:reset_overflow_status

C函数原型aclError aclrtResetOverflowStatus(aclrtStream stream)
Python函数ret = acl.rt.reset_overflow_status(stream)
函数功能清除当前Context下所有Stream上任务的溢出状态。异步接口。
输入说明stream:int,指定Stream的指针地址,用于下发溢出状态复位任务。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明本接口是异步接口,在调用之后,需调用acl.rt.synchronize_stream接口阻塞应用程序运行,直到指定Stream中的溢出状态复位任务已完成。

父主题: Context管理

在线提单