。”
赵文渊盯着白板,陷入沉思。
江松然是对的。
迄今为止,他带团队做的都是“点”上的工作,一个算子一个算子地推进。
这当然必要——没有那些必须的点,就不可能连成线。
可系统训练不只需要点;要想连线时不出错,现在就得开始连了。
赵文渊算是见识到江松然的厉害了:入职第一天上午,项目进度都没看全,他就把当前路线最大的隐患指了出来。
赵文渊转过椅子,面对江松然:“江博士,你觉得我们现在应该怎么办?”
江松然理了理思路,回答:“如果第一阶段的目标只是跑推理,就没必要追求N卡80%的效率,反正也用不满;优先把必要的算子做完、跑通。我刚看了一下,除了十个已经标绿的,还有二十三个过了60%的线。”
说到这儿,江松然低头看了眼屏幕,自己纠正:“二十四个,加起来三十四个。”
他坐回椅子,往屏幕前挪了挪,开始在表格里圈算子。
“反向、优化器更新、梯度同步这几类先往后排:三月初的推理用不到,等四月调训练时再回来做。”
赵文渊点头。这几类在表里占了不少,确实都是训练才用得到,先放一放完全合理。
“再看推理路径。”江松然把光标移到表格前半段,“矩阵乘、LayerNorm、softmax、激活这几类已经标绿。注意力相关的算子在哪?”
赵文渊往下翻了翻,指着一项:“标准Attention,61%。Flash-Attention那一版还没排上。”
“Flash不用,先用标准的,能跑就行。”江松然问,“KV-cache的读写呢?”
“这里,64%。”
“够了。”江松然往后靠了靠,“再加一个采样、一个RMSNorm。这两个简单,融不融合都行,先有了再说。我数一下啊。”
他在表里点了点,停在最后:“差两个。”
赵文渊愣了一下。
他原本打算把所有算子都做到80%,卡住的地方直接呼叫随身老爷爷韩路一;按现在的速度,可能要做到二月底,到时候再做端到端。
可现在被江松然这么一拆——
只差两个了。
“你这……”赵文渊一时不知怎么接话,“这两个我让组里今天就开。”
“不急。”江松然摆摆手,“先用现成脚手架把已经达标的三十四个串起来,跑一遍空载,把链路打通;这两个等做好再补进去。到时候哪儿不对,一目了然。”
赵文渊点头,起身去喊人。
一边走,他一边又有点懊恼:今天又装逼失败了。
——这是哪儿来的神仙啊。
赵文渊把组员都叫过来交代任务:今天就开始搭脚手架,用最小模型拉一条链路,在8卡环境下跑一圈。
周围工程师都是一愣:“今天?”
江松然在旁边补了一句:“跑的时候把Profiler打开。不要只看最后成败;每一步的耗时、等待时间、内存拷贝、通信比例,这些数据都有价值。”
众人还不认识江松然,都看向赵文渊。赵文渊点头,大家才散开。
赵文渊转身对江松然说:“江博士,谢谢你。这个点我确实没想到,还好你现在指出来了。”
江松然脸上毫无骄色:“这不是你的问题,是咱们推进得太快了。”
赵文渊不解:“太快了?”
江松然问:“你知道我们当年做TPU时,花了多久才意识到这个问题吗?”
赵文渊递话:“多久?”
“三
-->>(第2/4页)(本章未完,请点击下一页继续阅读)