跳到主要内容

aclrtSetStreamConfigOpt

aclrtDestroyGroupInfo

函数功能

销毁aclrtGroupInfo类型的数据,释放相关的内存。只能销毁通过aclrtCreateGroupInfo接口创建的aclrtGroupInfo类型。

Atlas 200/500 A2推理产品,不支持该接口。

函数原型

aclError aclrtDestroyGroupInfo(aclrtGroupInfo *groupInfo)

参数说明

参数名输入/输出说明
groupInfo输入待销毁的aclrtGroupInfo类型数据的指针。

返回值说明

返回0表示成功,非零表示失败。

父主题: 算力Group查询与设置

aclrtCreateStream

函数功能

在当前进程或线程中创建一个Stream,同步接口。

约束说明

  • 每个Context对应一个默认Stream,该默认Stream是调用aclrtSetDevice接口或aclrtCreateContext接口隐式创建的。推荐调用aclrtCreateStream接口显式创建Stream。
    • 隐式创建Stream:适合简单、无复杂交互逻辑的应用,但缺点在于,在多线程编程中,执行结果取决于线程调度的顺序。
    • 显式创建Stream:推荐显式,适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性。
  • 对于Atlas 200/500 A2推理产品,硬件资源最多支持512个Stream,如果已存在多个默认Stream,只能显式创建N个Stream(N=512-默认Stream个数-执行内部同步的Stream个数),例如,若已存在一个默认Stream和一个执行内部同步的Stream,则只能显式创建510个Stream。

函数原型

aclError aclrtCreateStream(aclrtStream *stream)

参数说明

参数名输入/输出说明
stream输出Stream的指针。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见运行管理资源申请与释放

父主题: Stream管理

aclrtCreateStreamV2

函数功能

在当前进程或线程中创建一个Stream,支持创建Stream时增加Stream配置。同步接口。

Atlas 200/500 A2推理产品不支持该接口。

约束说明

函数原型

aclError aclrtCreateStreamV2(****aclrtStream *stream, const aclrtStreamConfigHandle *handle)

参数说明

参数名输入/输出说明
stream输出Stream的指针。
handle输入Stream配置对象的指针。与aclrtSetStreamConfigOpt中的handle保持一致。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Stream管理

aclrtSetStreamConfigOpt

函数功能

设置Stream配置对象中的各属性的取值。

Atlas 200/500 A2推理产品不支持该接口。

约束说明

本接口需要配合其它接口一起使用,创建Stream,接口调用顺序如下:

  1. 调用aclrtCreateStreamConfigHandle接口创建Stream配置对象。
  2. 多次调用aclrtSetStreamConfigOpt接口设置配置对象中每个属性的值。
  3. 调用aclrtCreateStreamV2接口创建Stream。
  4. Stream使用完成后,调用aclrtDestroyStreamConfigHandle接口销毁Stream配置对象,调用aclrtDestroyStream接口销毁Stream。

函数原型

aclError aclrtSetStreamConfigOpt(aclrtStreamConfigHandle *handle, aclrtStreamConfigAttr attr, const void *attrValue, size_t valueSize)

参数说明

参数名输入/输出说明
handle输出Stream配置对象的指针。需提前调用aclrtCreateStreamConfigHandle接口创建该对象。
attr输入指定需设置的属性。
attrValue输入指向属性值的指针,attr对应的属性取值。 如果属性值本身是指针,则传入该指针的地址。
valueSize输入attrValue部分的数据长度。 用户可使用C/C++标准库的函数sizeof(*attrValue)查询数据长度。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Stream管理

aclrtCreateStreamWithConfig

函数功能

在当前进程或线程中创建一个Stream,同步接口。

Atlas 200/500 A2推理产品,使用本接口与aclrtCreateStream接口是等价的。

函数原型

aclError aclrtCreateStreamWithConfig(****aclrtStream *stream, uint32_t priority, uint32_t flag)

参数说明

参数名输入/输出说明
stream输出Stream的指针。
priority输入优先级。 Atlas 200/500 A2推理产品上,当前固定设置为0,预留参数,暂不使用。
flag输入Stream指针的flag。 取值范围:
- ACL_STREAM_FAST_LAUNCH:使用该模式创建出来的Stream,在使用Stream时,下发任务的速度更快。 相比aclrtCreateStream接口创建出来的Stream,在使用Stream时才会申请系统内部资源,导致下发任务的时长增加,使用本接口的ACL_STREAM_FAST_LAUNCH模式创建Stream时,会在创建Stream时预申请系统内部资源,因此创建Stream的时长增加,下发任务的时长缩短,总体来说,创建一次Stream,使用多次的场景下,总时长缩短,但创建Stream时预申请内部资源会增加内存消耗。
- ACL_STREAM_FAST_SYNC:使用该模式创建出来的Stream,在调用aclrtSynchronizeStream接口时,会阻塞当前线程,主动查询任务的执行状态,一旦任务完成,立即返回。 相比aclrtCreateStream接口创建出来的Stream,在调用aclrtSynchronizeStream接口时,会一直被动等待Device上任务执行完成的通知,等待时间长,使用本接口的ACL_STREAM_FAST_SYNC模式创建的Stream,没有被动等待,总时长缩短,但主动查询的操作会增加CPU的性能消耗。
(说明:配置取值范围之外的值,本接口创建出来的Stream等同于 aclrtCreateStream 接口。)

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Stream管理

aclrtDestroyStream

函数功能

销毁指定Stream,销毁通过aclrtCreateStreamaclrtCreateStreamWithConfigaclrtCreateStreamV2接口创建的Stream,若Stream上有未完成的任务,会等待任务完成后再销毁Stream。同步接口。

约束说明

  • 在调用aclrtDestroyStream接口销毁指定Stream前,需要先调用aclrtSynchronizeStream接口确保Stream中的任务都已完成。
  • 调用aclrtDestroyStream接口销毁指定Stream时,需确保该Stream在当前Context下。
  • 在调用aclrtDestroyStream接口销毁指定Stream时,需确保其它接口没有正在使用该Stream。

函数原型

aclError aclrtDestroyStream(aclrtStream stream)

参数说明

参数名输入/输出说明
stream输入待销毁的Stream。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见运行管理资源申请与释放

父主题: Stream管理

aclrtDestroyStreamForce

函数功能

销毁指定Stream,销毁通过aclrtCreateStreamaclrtCreateStreamWithConfig接口创建的Stream,若Stream上有未完成的任务,不会等待任务完成,直接强制销毁Stream。同步接口。

约束说明

调用本接口销毁指定Stream时,需确保该Stream在当前Context下。

函数原型

aclError aclrtDestroyStreamForce(aclrtStream stream)

参数说明

参数名输入/输出说明
stream输入待销毁的Stream。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Stream管理

在线提单