文档
注册

示例代码

关于多线程、多Stream的场景,请参见Stream管理

基本原理

您需要按顺序依次申请如下运行管理资源:DeviceContextStream,确保可以使用这些资源执行运算、管理任务。所有数据处理都结束后,需要按顺序依次释放运行管理资源:StreamContextDevice

  • 关于Context和Stream。
  • 关于单进程、单线程、单Stream场景。
    • 单进程:一个应用程序对应一个进程。
    • 单线程:不显式创建多个线程时,默认只有一个线程。
    • 单Stream:整个开发的过程中使用同一个Stream。

      对于同一个Stream中的异步任务,pyACL会按照应用程序中任务的顺序执行任务,确保异步任务执行的顺序。

示例代码

您可以从样例介绍中获取完整样例代码。

调用接口后,需增加异常处理的分支,并记录报错日志、提示日志,此处不一一列举。以下是关键步骤的代码示例,不可以直接拷贝运行,仅供参考。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import acl
#......

# ======运行管理资源申请======
# 1.指定运算的Device。
ret = acl.rt.set_device(device_id)

# 2.显式创建一个Context,用于管理Stream对象。
context, ret = acl.rt.create_context(device_id)

# 3.显式创建一个Stream。
#用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序执行任务。
stream, ret = acl.rt.create_stream()
# ======运行管理资源申请======

#......

# ======运行管理资源释放======
ret = acl.rt.destroy_stream(stream)
ret = acl.rt.destroy_context(context)
ret = acl.rt.reset_device(device_id)
# ======运行管理资源释放======

#......
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词