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推理产品不支持该接口。
约束说明
- 本接口需要配合其它接口一起使用,创建Stream,接口调用顺序如下:
- 调用aclrtCreateStreamConfigHandle接口创建Stream配置对象。
- 多次调用aclrtSetStreamConfigOpt接口设置配置对象中每个属性的值。
- 调用aclrtCreateStreamV2接口创建Stream。
- Stream使用完成后,调用aclrtDestroyStreamConfigHandle接口销毁Stream配置对象,调用aclrtDestroyStream接口销毁Stream。
函数原型
aclError aclrtCreateStreamV2(****aclrtStream *stream, const aclrtStreamConfigHandle *handle)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输出 | Stream的指针。 |
| handle | 输入 | Stream配置对象的指针。与aclrtSetStreamConfigOpt中的handle保持一致。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
aclrtSetStreamConfigOpt
函数功能
设置Stream配置对象中的各属性的取值。
Atlas 200/500 A2推理产品不支持该接口。
约束说明
本接口需要配合其它接口一起使用,创建Stream,接口调用顺序如下:
- 调用aclrtCreateStreamConfigHandle接口创建Stream配置对象。
- 多次调用aclrtSetStreamConfigOpt接口设置配置对象中每个属性的值。
- 调用aclrtCreateStreamV2接口创建Stream。
- 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,销毁通过aclrtCreateStream或aclrtCreateStreamWithConfig或aclrtCreateStreamV2接口创建的Stream,若Stream上有未完成的任务,会等待任务完成后再销毁Stream。同步接口。
约束说明
- 在调用aclrtDestroyStream接口销毁指定Stream前,需要先调用aclrtSynchronizeStream接口确保Stream中的任务都已完成。
- 调用aclrtDestroyStream接口销毁指定Stream时,需确保该Stream在当前Context下。
- 在调用aclrtDestroyStream接口销毁指定Stream时,需确保其它接口没有正在使用该Stream。
函数原型
aclError aclrtDestroyStream(aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 待销毁的Stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用流程及示例,参见运行管理资源申请与释放。
父主题: Stream管理
aclrtDestroyStreamForce
函数功能
销毁指定Stream,销毁通过aclrtCreateStream或aclrtCreateStreamWithConfig接口创建的Stream,若Stream上有未完成的任务,不会等待任务完成,直接强制销毁Stream。同步接口。
约束说明
调用本接口销毁指定Stream时,需确保该Stream在当前Context下。
函数原型
aclError aclrtDestroyStreamForce(aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 待销毁的Stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
在线提单