CANN技能库 GE重排检查
GE auto-reorder 风险设计清单【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skillsGE 图模式编译期会重排算子最常见的事故是把消费副流输出的轻量 precompute拉到主流、卡住主流 dominator让切流变成假并行原理见timeline-overlap-check.md。这个风险在设计阶段就能预判不必等到测出来才发现。任何一个把 op 切到副流的候选落地前都过一遍这份清单。本清单只适用于 Ascend IR / GE 图模式npu_stream_switch路径。npugraph_ex / aclgraph 是显式 stream没有 GE 自动重排但仍要关注跨流 tensor 生命周期record_stream。设计期逐条过针对当前候选回答下面每一条不允许留空副流的输出有哪些下游消费者在主流列出tensor 名 → 消费者。这些消费者里有没有 cheap precompute典型是Cast/Reshape/Swish/Sigmoid/Mul这类轻量算子例如silu(z) Swish(Cast(z))。GE 会把这些 precompute 提前下发到哪条流设计期先推断落地后用 profiling 的Stream IDStart Time验证。这些 precompute 会不会在主流 FIFO 顺序里排在主流 dominator 之前形成 barrier一旦排在前面主流 dominator 就得等它而它又得等副流输出 → 物理串行。应对要不要在副流with npu_stream_switch(...)块内显式预计算这些 op把它们 pin 在副流上而不是依赖 GE 自动放置如果第 2、4 条命中而第 5 条没处理这个候选大概率会落成假并行——要么在设计里就把 precompute 钉进副流要么换一种集合划分让副流有真正的 dominator 可吃。overlap 结论的纪律判断这个候选有没有真并行必须用overlap_pct数值不允许是 / 否二元结论。记录时给全三项副流时间窗[start, end] us主流 dominator 时间窗[start, end] usoverlap_pct数值 判定真并行 (≥0.5)/部分并行 (0.05~0.5)/假并行 (≤0.05)算法见timeline-overlap-check.md。Stream ID 已切到副流不能作为并行成立的结论。【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考