aclrtStreamQuery
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管理
aclrtSetStreamFailureMode
函数功能
当一个Stream上下发了多个任务时,可通过本接口指定任务调度模式,以便控制某个任务失败后是否继续执行下一个任务。同步接口。
函数原型
aclError aclrtSetStreamFailureMode(****aclrtStream stream, uint64_t mode)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 待操作Stream。 不支持指定默认Stream(即该参数传入NULL)的任务调度模式。 |
| mode | 输入 | 当一个Stream上下发了多个任务时,可通过本参数指定任务调度模式,以便控制某个任务失败后是否继续执行下一个任务。 取值范围如下: - ACL_CONTINUE_ON_FAILURE:默认值,某个任务失败后,继续执行下一个任务; - ACL_STOP_ON_FAILURE:某个任务失败后,停止执行后续的任务。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
aclrtStreamQuery
函数功能
查询指定Stream上的所有任务是否已经执行完成。同步接口。
函数原型
aclError aclrtStreamQuery(****aclrtStream stream, aclrtStreamStatus *status)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | Stream的指针。 |
| status | 输出 | Stream上的任务状态。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Stream管理
aclrtCreateEvent
函数功能
创建一个Event,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。同步接口。
函数原型
aclError aclrtCreateEvent(aclrtEvent *event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输出 | Event的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
相关接口
您也可以使用aclrtCreateEventWithFlag接口创建一个带标识的Event,不同标识的Event用于不同的功能。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
aclrtCreateEventWithFlag
函数功能
创建一个带标识的Event,不同标识的Event用于不同的功能,同步接口。
函数原型
aclError aclrtCreateEventWithFlag(****aclrtEvent *event, uint32_t flag)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输出 | Event的指针。 |
| flag | 输入 | Event指针的flag。 当前支持将flag设置为如下宏: - ACL_EVENT_TIME_LINE 表示创建的Event数量不受限制、且创建出来的Event可用于统计两个Event之间的耗时。 text<br> #define ACL_EVENT_TIME_LINE 0x00000008u<br> - ACL_EVENT_SYNC 表示创建的Event数量受限、且创建出来的可用于多Stream间的同步等待。 text<br> #define ACL_EVENT_SYNC 0x00000001u<br> flag为bitmap,支持将flag设置为单个宏、或者对多个宏进行或操作。使用本接口创建Event时,若将flag参数值包含ACL_EVENT_SYNC宏,则创建出来的Event数量受限,具体如下: Atlas 200/500 A2推理产品,单个Device上最多支持65535个Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
相关接口
您也可以使用aclrtCreateEvent接口创建Event,Event数量有限,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。
父主题: 同步等待
aclrtDestroyEvent
函数功能
销毁一个Event,只能销毁通过aclrtCreateEvent/aclrtCreateEventWithFlag接口创建的Event,同步接口。调用aclrtCreateEvent接口创建的Event,在销毁时,用户需确保等待aclrtSynchronizeEvent接口或aclrtStreamWaitEvent接口涉及的任务都结束后,再销毁。
约束说明
在调用aclrtDestroyEvent接口销毁指定Event时,需确保其它接口没有正在使用该Event。
函数原型
aclError aclrtDestroyEvent(aclrtEvent event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 待销毁的Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
在线提单