当写出顶尖算子的人,也决定去开机甲

封面

这两天技术圈的朋友圈里,几乎都在转同一篇文章。

那是 DeepSeek 的底层系统工程师刘胜与写的一篇长文,标题叫《我不得不把才华埋葬在昨天》。他是北大图灵班出来的,之前带队拿过超算比赛冠军,去年加入 DeepSeek,几天前刚交付了下一代大模型的主 Attention 算子。

如果你不在技术圈,可能对「算子」这两个字没什么概念。但在大模型这行里,算子工程师其实就像古代那些专门给绝世名剑淬火的铸剑师。

过去这一年多,关于人工智能要取代程序员的讨论铺天盖地。很多做技术的小伙伴心里其实一直留着一道防线,大家会觉得,大模型能写写前端页面,能写写简单的增删改查业务,那是因为这些代码在网上有几百亿行现成的范本。但凡遇到真正硬核的底层工程,比如怎么在英伟达 GPU 那几十个寄存器之间调度指令,怎么在纳米级的硬件限制下把显存带宽压榨到极限,人工智能就抓瞎了。因为那是极少数顶尖极客凭着直觉和经验,一行一行抠出来的手工艺术。

可刘胜与这篇自述之所以在圈子里引发这么大的震动,就是因为他把大家最后的这道心理防线,亲手敲碎了

他说自己刚刚交付完那个极其复杂的核心算子,但心里没有太多胜利的喜悦,反而觉得很苍凉。因为按照目前人工智能的进化曲线,最多再过半年到一年,机器自己去读底层硬件指令,自己去分析代码停顿并迭代写出最优算子的水平,大概率就会超过他。

他用了一句读起来让人心里发紧的话,来总结自己的处境。

「我不得不把才华埋葬在昨天,去做一位机甲驾驶员。我的手中多了些齿轮,但心中少了些节拍。」


我这几年一直在跟踪大模型和底层基础设施的变化,看到这篇文章的时候,确实很多过往的记忆一下子涌了上来。

大家可能不知道,写高性能底层算子到底是一种什么样的体验。

在现代软件工程里,绝大多数程序员打交道的是高级语言,写的是 PythonJava 或者 Go。这些语言被设计出来的目的,就是为了让人脑远离冰冷残酷的硬件细节。但算子工程师不行,他们必须穿着潜水服直接沉到最底部的深海里去。

大模型每次处理上万个 token 的上下文,底层的主注意力机制要执行数以亿计的浮点计算。如果你手写的一小段汇编代码,能比硬件厂商官方提供的标准库快上百分之五,整个数万卡集群一年就能省下几千万元的电费和机房成本。为了这百分之五,工程师要在性能分析工具里死磕密密麻麻的流水线跟踪,要像瑞士钟表匠组装微型齿轮一样,去算计每个线程束在什么时候把数据搬进共享内存,怎么避开 Bank 冲突,怎么防范寄存器溢出,怎么用重叠计算去掩盖漫长的显存延迟,不让硬件计算单元出现哪怕几个时钟周期的空转。

那是极度纯粹、门槛极高,但也极其迷人的一门手艺。

在很多老程序员心里,这种工作代表着计算机科学最初的尊严。你不仅要懂高深的数学算法,还要摸透芯片微架构的底层怪癖与物理边界。全世界能把这件事做到顶尖水平的人,满打满算可能也就几百个。

但这里面藏着一个极其现实的悖论。

大模型跑得越快,学习新知识和自我进化的能力就越强。刘胜与他们这些天才工程师越是通宵达旦地压榨硬件,越是把底层通信和注意力机制的效率翻倍,人工智能的迭代周期就被推得越快。

结果就是,这个被他们亲手打磨出来的工具,转过头来最先学会的一项本领,就是看懂他们写的代码。机器不知疲倦地反复调用性能分析工具,在毫秒级的时间窗口里,测试几万种底层汇编指令的排列组合。人类工程师需要花几年时间在真实项目里摔打出来的硬件调优直觉,机器用海量的并发模拟试错,几天之内就能拿出一份几乎不落下风的最优方案。

你把刀磨得越锋利,这把刀劈开旧世界的速度就越快,顺带着把磨刀人自己,也留在了旧世界里。


这其实不是技术史上第一次发生类似的事。如果我们把时间轴往前拉半个多世纪,就会发现这种剧本一直在轮番上演。

一九五七年,约翰·巴科斯带领 IBM 团队发明了历史上第一门高级编程语言 Fortran。在那之前,全世界所有的计算机程序,都是程序员拿着纸带用机器码和纯手工汇编一个指令一个指令手敲出来的。当时很多资深汇编程序员愤怒地抗议,他们认为任何机器自动生成的代码,都绝不可能比一个经验老到的人类程序员写得更精简、更省内存。

在长达十年的时间里,他们说的确实是对的。但在十年之后,软件项目的规模膨胀了一万倍,人类的手指和大脑再也无法记住成千上万个内存地址了,高级语言和自动化编译器,最终让纯手工汇编彻底退出了主流舞台。

后来到了阿波罗登月计划的时候,麻省理工学院的玛格丽特·汉密尔顿团队编写机载导航计算机代码,当时还没有现代意义上的半导体内存。为了把程序固化到登月舱里,全美召集了一大批纺织女工,用铜线在细小的磁环里一针一线穿孔编织。穿过磁环代表一,绕过磁环代表零。这门极度严密的手工编织技艺被称为绳芯内存。当后来半导体芯片出现的时候,这群用指尖编织出人类登月奇迹的巧手女工,同样悄无声息地告别了工业舞台。

再到上世纪七十年代初,微处理器刚起步的时候,根本没有什么自动画芯片的软件。英特尔当年的工程师设计一款处理器,要趴在好几米宽的聚酯薄膜图纸上,用红黄蓝三种颜色的铅笔,手工把几千个晶体管和电路连线一笔一笔画出来。那批工程师被称为电路艺术家,他们甚至会在芯片的空白硅片边缘偷偷画上一只米老鼠或者签上自己的名字。

但后来集成电路的复杂度发生指数级爆炸,人类的肉眼和双手再也无法承担上百万个晶体管的排布了。自动布局布线算法一出现,那些趴在地上画图的老派艺术家们,同样经历过一段极其痛苦的失落。当时也有很多大师痛惜,算法布出来的线路毫无美感,冰冷而缺乏灵气。

但技术演进从来不为任何人的审美留恋而停下脚步。正是因为把人类画图的手艺换成了算法,我们才拥有了后来几十亿个晶体管的现代芯片。

今天刘胜与他们写算子的背影,和当年不得不放下画笔的电路艺术家,在历史上几乎重叠在了一起。

代码正在从一种带有强烈个人印记的艺术创作,退化为一种纯粹的工业生产要素。


刘胜与在文章里感叹的那种落寞,我很能理解。对于一个痴迷于手艺的天才来说,最难受的往往不是收入减少或者找不到工作,而是那种人与机器之间默契共振的节拍被夺走了。

以前你深夜写完一段极其精妙的汇编代码,看到性能监控器跑出了历史最高纪录,那种多巴胺的释放是无可替代的。你知道那是你的智力在跟宇宙物理法则进行的一场微小却漂亮的博弈。

但如果你未来的日常工作,变成了在终端对话框里给几个数字助手下达指令,一个负责生成候选方案,一个负责编译测试,一个负责跑基准排查,最后你只是在屏幕前扫一眼测试报告,点一下确认合并,那份属于手工匠人的心跳自然也就消失了。

你成了机甲驾驶员,你操纵的力量比以前大了一万倍,但你再也摸不到泥土的温度了。

说到这里,可能有小伙伴会开始焦虑,如果连写出顶尖模型核心算子的人都在准备埋葬才华,普通程序员还有什么路可走?

大家不用太悲观。

每一代工具发生跃迁的时候,都会有一大批原本被视为神技的绝活被机器吸收,但这并不代表人类在这个系统里变得多余了。

在汽车刚取代马车的时候,全世界最好的养马人、驯马师和马车夫都在叹气。但随之而来的并不是人类出行需求的终结,而是公路网络、汽车工业、现代物流和高速客运的大爆发。

代码也是同样的道理。

过去几十年,整个软件行业之所以门槛极高而且开发缓慢,很大程度上就是因为人类的大脑在充当翻译苦力。我们得把人类社会的复杂商业意图,费劲地翻译成一行行对机器友好的指令。为了照顾芯片那点微薄的算力,一代代工程师不得不把海量的脑力消耗在寄存器分配、内存对齐和并发锁竞争这些细节上。

这些细节当然很伟大,但它们不是人类发明计算机的终极目的。

计算机被发明出来,是为了帮我们计算复杂的行星轨道,是为了帮我们模拟新药分子,是为了帮我们把知识以极低成本传递给每个人。

当人工智能把底层算子和通用代码的编写成本压缩到接近于零的时候,这绝不是工程的终点,它只是把人类从繁重的翻译苦力中彻底解救了出来。

未来的核心竞争力,不再是谁能把一段指令多抠出两微秒,而是谁能更深刻地理解真实世界的混乱需求,谁能把不同领域的知识拼装成一个真正有用的系统。

代码本身的神秘感正在迅速消退。就像当年文字从少数贵族和祭司的独占特权,变成了每个普通人都能掌握的日常工具一样。

对于正在经历这一场变化的朋友们来说,我觉得最要紧的不是去跟机器比拼记性或者比拼抠细节的速度,而是尽早从那种工匠自恋的情绪里抽身出来。

坦然接受有些手艺就是会成为历史标本,承认机器在局部细节上已经比我们更擅长。

刘胜与在自述的最后写得很清醒,他说尽管知道自己在加速旧手艺的消亡,但他依然要把手头的事做到极致。

「如果最先进的智能工具被垄断在少数人手里,那才是更大的不公平。」

才华埋葬在昨天,并不代表明天就没有意义。

当泥瓦匠学会操纵盾构机的时候,他虽然失去了亲手砌砖的踏实感,但他终于有机会去打通整座山脉了。

位旅人路过 次翻阅 初次见面