开发应用时,应用程序中必须包含运行管理资源申请的代码逻辑,关于运行管理资源申请的接口调用流程,请先参见pyACL接口调用流程,了解整体接口调用流程,再查看本节中的资源申请、释放流程说明。
运行管理资源包括:Device、Context、Stream。
您需要按顺序依次申请如下运行管理资源:Device、Context、Stream,确保可以使用这些资源执行运算、管理任务。
差异点 |
显式创建的Context和Stream |
隐式创建的Context和Stream |
---|---|---|
创建 |
|
使用acl.rt.set_device接口隐式创建默认Context和默认Stream。 |
释放 |
|
调用acl.rt.reset_device接口后自动释放默认Context和默认Stream。
|
默认Stream作为接口入参时,直接传0。
调用acl.rt.create_context接口显式创建Context,调用acl.rt.create_stream接口显式创建Stream。系统在显式创建Context时,系统内部会调用acl.rt.set_device接口指定运行的Device,Device ID通过acl.rt.create_context接口传入。
如果查询结果为ACL_HOST,则数据传输时涉及申请Host上的内存。
如果查询结果为ACL_DEVICE,则数据传输时仅需申请Device上的内存。
数据传输的详细介绍请参见数据传输。
所有数据处理都结束后,需要按顺序依次释放运行管理资源:Stream、Context、Device。
关键接口的说明如下: