CO-DESIGN RESEARCH REPLAY
读取证据…

ASTRA 的优化过程 / 从问题读起

它为什么会想到这一步?

先发现哪里在等,再尝试改变数据怎么搬、任务怎么分。速度上来后,新的问题变成:怎样让最忙的那一小段也不超过功率预算?

下面按 8 个问题带你读。每步先讲线索和判断,再看试了什么、结果怎样影响下一步。

最后达到的完整本地评分—50,000 目标已过 · 不代表全空间最优
两道题

P1:一次处理很多行。同一份权重能被多个位置共享,重点是减少重复搬运。
D1:连续处理8步,每步一行。未来输入还没释放,重点是跨步留住权重、缩短一步里的等待。

同一台机器

SM 是可并行工作的计算单元;WG 是分给它的任务组。RF 是每个任务组计算时使用的小存储。
每种设计都要同时跑对两题,面积≤24 mm²,最热的1000周期平均功率≤20 W。

遇到陌生缩写时,在这里查一句话解释
HBM / SH / RF
大容量主存 / 可选的片上暂存 / 计算直接使用的寄存器。数据每经过一级都可能付出搬运与排队成本。
tile / 面板
tile 是一次处理的矩阵小块;面板在这里常指一段连续输出列对应的权重,便于分给某个任务组。
M / N / K
矩阵乘法的输出行数 / 输出列数 / 求和长度。拆M或N可各写一块;拆K会产生需要相加的部分和。
W1 / GELU / W2
前馈网络的“扩展维度→激活→压回原维度”。融合是让中间结果在同一任务内直接继续使用。
QKV / K/V导出
attention需要的查询、键、值;新产生的K/V必须写到题目规定的最终地址,供后续位置使用。
check / estimate / grade
数值检查 / 周期与功率估计 / 同一硬件下两题的完整评分。只有完整合格grade记为已验证分数。

跟着问题走

从“能放下吗”,走到最后117个周期

两题在实际会话中交错推进;这里按问题串起阅读顺序。每一步会注明当时观察与本次解释的区别。

更详细地读 ↗

把“搜索”落到一个具体问题

求解器究竟在选什么?用一笔容量账看明白

以早期 D1 的权重常驻为例,外层选机器大小和面板宽度;内层回答:每块权重归哪个任务组,才能放下,并避免一个阶段只有少数计算单元忙?

  1. 先决定允许改什么SM数量、每块的输出列数;此时暂时固定“各个投影分别计算”的程序结构。
  2. 再删掉不可能的候选每块都要有归属;每个WG扣除临时区和历史后,权重不能超容量。
  3. 在可行分配中挑一个估算每个阶段各SM的工作量,尽量缩短最慢SM的那一份。CP-SAT负责这个离散分配。
  4. 生成汇编,再问模拟器测量真实的排队、依赖和功率。代理解即使“最优”,完整程序仍可能慢;需要修订模型或程序模板。

自己改一下容量,看看为什么要搜这些变量

根据早期VL16、每WG预留16 KiB临时区、两层历史K/V全驻留的模板计算。容量检查只能否定一部分候选;通过它还不等于存在合法放置,更不等于速度快。

一块权重到底有多大?

W1:128×512;W2:512×128。面板宽度一样时,W2的求和维长4倍,所以一个面板也大4倍。改变这个变量会同时改变容量、任务数量与可并行性。

看求解器实际给出的两个任务组(12 SM / 16列面板)

每个RF分区4 KiB。来自保存的placement.json;这里只展示前两个WG,不是完整调度时间线。

WG分到的权重权重空间历史 + 临时区合计
g0第2层W1的第0–15、16–31列2×8=16 KiB32+16 KiB64 KiB
g1第2层Wo 1块、W1 1块、W2 1块8+8+32=48 KiB0+16 KiB64 KiB

“放置”选择了谁持有权重;装载的时刻、多个WG如何争用网络、融合后是否还需要原来的中间结果,仍要由程序和官方计时回答。

打开实际分配表 ↗
需要核对时,再展开实验工作台分数曲线 · 两候选比较 · RF网格 · 精确模型 · 157条记录
P1 · Prefill 周期——
D1 · Decode 周期——
共同硬件面积—16 SM · SH0 / Cache0
导入的实验记录——

01 / 成绩与资格

先看清:更快的候选,也可能不合格

61 个双题候选,按日志追加顺序排列。点击节点查看配置;无完整周期的失败项位于底部。

完整 grade估计过门槛×超限 / 失败

纵轴为周期折算分;只有绿色实心点和阶梯是完整合格 grade。空心点尚未完整 grade。复验标记附在对应候选位置,横轴不代表评分完成时间。

选择实验

展开 exact 参数与 hash

COMPARE / 同时看两边

候选间到底改了什么

参数差异(只展示有记录的字段)

03 / 把机制拆开看

RF 网格:一次装入,供多个输出块复用

一个 WG 的 64 KiB RF,分成 16 个 4 KiB 分区。每块为 32×32 FP32。

容量示意 · 不预测周期

绿:累加器;蓝:A 双缓冲;金:B。B 在容量允许时双缓冲。GELU 临时区会复用已结束生命周期的输入区;示意依据生成器的静态约束。

04 / 搜索模型

不同问题,用了不同的搜索方式

没有一个 MILP 同时求出整题最优。早期枚举、CP-SAT 分配、手工结构构造与后期排程实测共同推进。

05 / 全部证据

包括绕路,也包括失败

双题、D1 单题与局部核分开查看,避免混成同一分数序列。

序号 / 候选证据级别P1 / 核周期D1 周期最高功率 W面积 mm²完整 grade 分

“通过已测门槛”仅限该行测量范围。局部核不会产生提交分数;空白异常保留为“未记录具体原因”。

06 / 人类可以带走的方法

把一次成功,转成下一次能执行的研究流程

以下是对公开行为和证据的归纳;可复用的是提问与验证方式,具体参数要重新校准。

阅读全文 ↗
来源、覆盖范围与仍然未知的事