结果与保证边界
解释调用者能核验什么,以及为什么“本次最佳候选”不等于严格局部最优或全局最优。
本页目录
优先核验最终路径和指标
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 后,返回方案必须满足接口声明的每切片最大中间张量元素约束;若约束不可达,接口应报错,而不是把未满足限制的未切片路径当作成功结果。
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、显存占用或所有并发任务的总内存。