Fixed 与 Dynamic

两种公开切片模式都从普通未切片 Auto winner 出发,但是否允许改变路径不同。

本页目录

公开值只有 fixed 和 dynamic

模式 是否默认 是否需要 target_size 路径是否允许改变
fixed 执行切片时需要;没有目标时不做额外工作
dynamic 必须同时提供 是,但不保证一定改变

Warning

只有两种公开模式

公开切片模式严格只有 fixeddynamic。这里的 slicing mode 与 Auto pathfinding 是两个不同概念。

两种模式的共同起点

给出 target_size 后,Auto 先完成普通未切片路径规划。切片模式只决定随后怎样处理这条路径;它不会把 target_size 解释成另一种路径搜索预设。

Fixed 与 Dynamic 都从同一类未切片 winner 出发;差异只在切片阶段是否允许局部改变路径。

顶层最终 path、slice 字段以及 slicing_report.final_ssa_path 描述切片后交付的结果;比较 fixed 与 dynamic 时,应使用这些最终字段。

模式语义

步骤 fixed dynamic
输入 普通未切片 winner 同一类普通未切片 winner
切片腿 find_slices_to_size 固定路径选择 每轮根据当前路径重新选择
路径改进 不运行 slice-and-reconfigure
调整范围 无额外路径重构 有限的局部路径调整;具体配置可随版本变化
最终路径 与输入 SSA path 相同 可能不同,也可能恰好相同
python
from arctn import arctn_schedule

fixed = arctn_schedule(
    inputs, output, size_dict,
    preset="heavy", target_size=2**24,
    slicing_mode="fixed", seed=0,
)
dynamic = arctn_schedule(
    inputs, output, size_dict,
    preset="heavy", target_size=2**24,
    slicing_mode="dynamic", seed=0,
)

不可达目标与时间边界

两种模式都会在最终 path/sliced legs 配对上重新检查整数 target_size。没有合法方案时,Rust 返回 Err,Python 高层抛出 ValueError;不会返回一条未切片、违反上限的路径。

max_time 是普通路径搜索阶段的协作式停止条件,不是可抢占的进程级硬超时。用户已经请求 target_size 时,最终交付的 path 与 sliced legs 仍必须通过整数约束复核;不能因为时间条件触发,就把违反目标的方案作为成功结果返回。

Warning

协作式时间上限

严格的端到端墙钟上限由进程级 watchdog、MPI launcher 或作业调度系统实施,并覆盖寻路、切片、序列化和数值执行;max_time=10 仅表示普通路径搜索阶段的协作式时间条件。