Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
当前 Kernel Launch 和模型执行接口默认采用异步下发。算子执行发生异常时,错误通常在后续流同步或其他 Runtime 接口中返回,难以直接定位到实际失败的 Launch 接口。 需要提供 Launch Blocking 调试能力:开启后,受支持的 Kernel Launch 和模型执行接口在任务执行完成后再返回,使设备侧执行错误能够在对应接口处及时返回。 同时,部分复合算子存在任务依赖,强制逐次同步可能阻止后续任务下发并导致死锁。因此还需要提供流级模式控制和可嵌套的临时非阻塞区间。
runtime
扩展流属性 ACL_STREAM_LAUNCH_BLOCKING_MODE,支持三种模式:
模式 行为 ━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CTRL_BY_ENV 由 ASCEND_RT_LAUNCH_BLOCKING 控制 ───────────── ─────────────────────────────────── NO_BLOCKING 当前流保持异步,覆盖环境变量 ───────────── ─────────────────────────────────── BLOCKING 当前流强制阻塞,覆盖环境变量 默认流支持通过 aclrtSetStreamAttribute 和 aclrtGetStreamAttribute 设置、查询该属性。
新增临时非阻塞区间接口:
流级 NO_BLOCKING/BLOCKING ASCEND_RT_LAUNCH_BLOCKING
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
当前 Kernel Launch 和模型执行接口默认采用异步下发。算子执行发生异常时,错误通常在后续流同步或其他 Runtime 接口中返回,难以直接定位到实际失败的 Launch 接口。
需要提供 Launch Blocking 调试能力:开启后,受支持的 Kernel Launch 和模型执行接口在任务执行完成后再返回,使设备侧执行错误能够在对应接口处及时返回。
同时,部分复合算子存在任务依赖,强制逐次同步可能阻止后续任务下发并导致死锁。因此还需要提供流级模式控制和可嵌套的临时非阻塞区间。
Origin(信息来源)
runtime
Benefit / Necessity (价值/作用)
Design(设计方案)
普通模型和 CaptureModel 均需在完整执行流程结束后,根据有效策略决定是否同步。Launch 提交失败时直接返回原始错
误,不再执行同步。
扩展流属性 ACL_STREAM_LAUNCH_BLOCKING_MODE,支持三种模式:
模式 行为
━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CTRL_BY_ENV 由 ASCEND_RT_LAUNCH_BLOCKING 控制
───────────── ───────────────────────────────────
NO_BLOCKING 当前流保持异步,覆盖环境变量
───────────── ───────────────────────────────────
BLOCKING 当前流强制阻塞,覆盖环境变量
默认流支持通过 aclrtSetStreamAttribute 和 aclrtGetStreamAttribute 设置、查询该属性。
新增临时非阻塞区间接口:
要求:
最终优先级为:
Begin/End 非阻塞区间