函数:set_stream_overflow_switch
函数:create_stream_with_config
| C函数原型 | aclError aclrtCreateStreamWithConfig(aclrtStream *stream, uint32_t priority, uint32_t flag) |
|---|---|
| Python函数 | stream, ret = acl.rt.create_stream_with_config(priority, flag**)** |
| 函数功能 | 在当前进程或线程中创建一个Stream,同步接口。 使用本接口与acl.rt.create_stream接口相比是等价的。 |
| 输入说明 | priority:int,优先级。 Atlas 200/500 A2推理产品****上,当前固定设置为0,预留参数,暂不使用。 flag:int,Stream的flag。 取值范围: - ACL_STREAM_FAST_LAUNCH = 1,使用该模式创建出来的Stream,在使用Stream时,下发任务的速度更快。 相比acl.rt.create_stream接口创建出来的Stream,在使用Stream时才会申请系统内部资源,导致下发任务的时长增加,使用本接口的“ACL_STREAM_FAST_LAUNCH”模式创建Stream时,会在创建Stream时预申请系统内部资源,因此创建Stream的时长增加,下发任务的时长缩短,总体来说,创建一次Stream,使用多次的场景下,总时长缩短,但创建Stream时预申请内部资源会增加内存消耗。 - ACL_STREAM_FAST_SYNC = 2,使用该模式创建出来的Stream,在调用acl.rt.synchronize_stream接口时,会阻塞当前线程,主动查询任务的执行状态,一旦任务完成,立即返回。 相比acl.rt.create_stream接口创建出来的Stream,在调用acl.rt.synchronize_stream接口时,会一直被动等待Device上任务执行完成的通知,等待时间长,使用本接口的“ACL_STREAM_FAST_SYNC”模式创建的Stream,没有被动等待,总时长缩短,但主动查询的操作会增加CPU的性能消耗。 (说明:配置取值范围之外的值,本接口创建出来的Stream等同于 acl.rt.create_stream 接口。) |
| 返回值说明 | stream:int,表示创建的Stream对象的指针地址。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
父主题: Stream管理
函数:destroy_stream
| C函数原型 | aclError aclrtDestroyStream(aclrtStream stream) |
|---|---|
| Python函数 | ret = acl.rt.destroy_stream(stream) |
| 函数功能 | 销毁指定Stream,销毁通过acl.rt.create_stream或acl.rt.create_stream_with_config接口创建的Stream,若Stream上有未完成的任务,会等待任务完成后再销毁Stream。同步接口。 |
| 输入说明 | stream:int,待销毁的Stream的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 在调用acl.rt.destroy_stream接口销毁指定Stream前,需要先调用acl.rt.synchronize_stream接口确保Stream中的任务都已完成。 - 调用acl.rt.destroy_stream接口销毁指定Stream时,需确保该Stream在当前Context下。 - 在调用acl.rt.destroy_stream接口销毁指定Stream时,需确保其它接口没有正在使用该Stream。 |
| 参考资源 | 接口调用流程与示例,请参见运行管理资源申请与释放、同步等待。 |
父主题: Stream管理
函数:destroy_stream_force
| C函数原型 | aclError aclrtDestroyStreamForce(aclrtStream stream) |
|---|---|
| Python函数 | ret = acl.rt.destroy_stream_force(stream) |
| 函数功能 | 销毁指定Stream,销毁通过acl.rt.create_stream或acl.rt.create_stream_with_config接口创建的Stream,若Stream上有未完成的任务,不会等待任务完成,直接强制销毁Stream。同步接口。 |
| 输入说明 | stream:int,待销毁的Stream的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 调用本接口销毁指定Stream时,需确保该Stream在当前Context下。 |
父主题: Stream管理
函数:set_stream_overflow_switch
| C函数原型 | aclError aclrtSetStreamOverflowSwitch(aclrtStream stream, uint32_t flag) |
|---|---|
| Python函数 | ret = acl.rt.set_stream_overflow_switch(stream, flag**)** |
| 函数功能 | 饱和模式下,对接上层训练框架时(例如:PyTorch),针对指定Stream,打开或关闭溢出检测开关,关闭后无法通过溢出检测算子获取任务是否溢出,同步接口。 Atlas 200/500 A2推理产品,当前版本不支持该接口。 |
| 输入说明 | stream:int,指定Stream的指针地址,若传入0,则操作默认Stream。 **flag:**int,溢出检测开关,取值范围如下: - 0:关闭 - 1:打开 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 在调用本接口前,可调用acl.rt.set_device_sat_mode接口设置饱和模式。 - 调用该接口打开或关闭溢出检测开关后,仅对后续新下的任务生效,已下发的任务仍维持原样。 |
父主题: Stream管理
函数:get_stream_overflow_switch
| C函数原型 | aclError aclrtGetStreamOverflowSwitch(aclrtStream stream, uint32_t flag) |
|---|---|
| Python函数 | flag, ret = acl.rt.get_stream_overflow_switch(stream) |
| 函数功能 | 针对指定Stream,获取其当前溢出检测开关是否打开。 Atlas 200/500 A2推理产品,当前版本不支持该接口。 |
| 输入说明 | stream:int,待操作Stream的指针地址,若传入0,则操作默认Stream。 |
| 返回值说明 | flag:int,溢出检测开关,取值范围如下: - 0:关闭 - 1:打开 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
父主题: Stream管理
函数:set_stream_failure_mode
| C函数原型 | aclError aclrtSetStreamFailureMode(aclrtStream stream, uint64_t mode) |
|---|---|
| Python函数 | ret = acl.rt.set_stream_failure_mode(stream, mode) |
| 函数功能 | 当一个Stream上下发了多个任务时,可通过本接口指定任务调度模式,以便控制某个任务失败后是否继续执行下一个任务。同步接口。 |
| 输入说明 | stream:int,待操作Stream的指针地址。 mode:int,当一个Stream上下发了多个任务时,可通过本参数指定任务调度模式,以便控制某个任务失败后是否继续执行下一个任务。 取值范围如下: - ACL_CONTINUE_ON_FAILURE = 0:默认值,某个任务失败后,继续执行下一个任务。 - ACL_STOP_ON_FAILURE = 1:某个任务失败后,停止执行后续的任务。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | “stream”参数不支持指定默认Stream(即向该参数传入0)的任务调度模式。 |
父主题: Stream管理
函数:create_event
| C函数原型 | aclError aclrtCreateEvent(aclrtEvent *event) |
|---|---|
| Python函数 | event, ret = acl.rt.create_event() |
| 函数功能 | 创建一个Event,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。同步接口。 |
| 输入说明 | 无 |
| 返回值说明 | event:int,创建的Event对象的指针地址。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 相关接口 | 您也可以使用acl.rt.create_event_with_flag接口创建Event,由于该接口当前仅支持将“flag”设置为“0x00000008”,表示创建的Event数量不受限制且创建出来的Event仅用于统计两个Event之间的耗时。 |
| 参考资源 | - 接口调用流程,参见多Stream接口调用流程。 - 接口调用示例,参见关于Event的同步等待、关于Stream间任务的同步等待。 |
父主题: 同步等待
在线提单