结果与保证边界

解释调用者能核验什么,以及为什么“本次最佳候选”不等于严格局部最优或全局最优。

本页目录

优先核验最终路径和指标

python
report = arctn_schedule(
    inputs, output, size_dict,
    preset="heavy", seed=11, use_ssa=True,
)

assert len(report["path"]) == len(inputs) - 1
print(report["log10_flops"])
print(report["log2_max_size"])
print(report["log2_max_contraction_size"])
print(report["log2_total_size"])
print(report["log2_read_write"])
print(report["log2_peak_size"])
公开结果 能够回答的问题
path 最终返回的收缩顺序是什么
六项 PathStats 这条完整路径的 FLOPs、最大步骤、总读写与峰值等指标
planner objective 与权重 本次调用用什么口径比较候选
sliced legs 与切片指标 显式 target_size 下最终切片方案是否满足约束

“最好”限定在本次完成的候选集合内

表述 是否由接口保证 原因
本次搜索观察到的最佳候选 明确限定了有限候选集合
已完成候选中目标值最低的路径 可由统一评分和最终比较核验
局部最小值 需要定义邻域并证明所有邻居都不更优
全局最优 启发式搜索没有穷举全部收缩树

内部实现可以使用局部改进来尝试降低目标值,但公开接口不承诺具体改进算法、执行次数或阶段顺序,也不把搜索停止状态当作最优性证明。

指定 target_size 时的返回要求

提供 target_size 后,返回方案必须满足接口声明的每切片最大中间张量元素约束;若约束不可达,接口应报错,而不是把未满足限制的未切片路径当作成功结果。

python
report = arctn_schedule(
    inputs, output, size_dict,
    preset="light",
    target_size=2**24,
    slicing_mode="fixed",
)
print(report["sliced_legs"])
print(report["sliced_log2_max_size"])

内存指标边界

target_size 约束的是每个切片的中间张量元素数,不是进程 RSS、显存占用或所有并发任务的总内存。