aclrtDestroyStreamForce
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管理
aclrtSetStreamOverflowSwitch
函数功能
饱和模式下,对接上层训练框架时(例如PyTorch),针对指定Stream,打开或关闭溢出检测开关,关闭后无法通过溢出检测算子获取任务是否溢出,同步接口。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
- 在调用本接口前,可调用aclrtSetDeviceSatMode接口设置饱和模式。
- 调用该接口打开或关闭溢出检测开关后,仅对后续新下的任务生效,已下发的任务仍维持原样。
函数原型
aclError aclrtSetStreamOverflowSwitch(aclrtStream stream, uint32_t flag)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 待操作Stream,若传入NULL,则操作默认Stream。 |
| flag | 输入 | 溢出检测开关,取值范围如下: - 0:关闭 - 1:打开 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
aclrtGetStreamOverflowSwitch
函数功能
针对指定Stream,获取其当前溢出检测开关是否打开。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError aclrtGetStreamOverflowSwitch(aclrtStream stream, uint32_t *flag)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 待操作Stream,若传入NULL,则操作默认Stream。 |
| flag | 输出 | 溢出检测开关,取值范围如下: - 0:关闭 - 1:打开 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
在线提单