首页 > 都市言情> 首富从AI浪潮开始

首富从AI浪潮开始 第327节

  但是江松然说话的语气很笃定,虽然没有说明确的时间线,但是大家都感觉到了江松然的决心。

  任务分配到人,每个人负责几个算子,按照优先级从高到低做,只要求功能实现,先不做性能调优,做完了就提交评审,然后再做下一个。

  工作量很大,所以有不少人都自愿留下来加班。

  范小天是其中一个。

  源智基础设施团队的高级工程师,薪水拿的不低,但他不是为了钱来的。

  他不一样,他是为了理想。

  毕竟,如果一个人靠着英伟达的股票已经实现了财务自由的话,他接下来的工作不去追求理想,又去追求什么呢?

  当然,范小天一般不会把这句话说出来。

  因为听起来太欠揍了。

  但他确实是组里最资深、最有话语权的人之一。

  原因很简单,他以前在英伟达做的就是类似的工作——给大模型训练框架里的内核(Kernal)做适配,做性能分析(Profiling)工具。

  但就是因为他的履历,他对公司现在的方向不太看好。

  太急功近利了。

  太想毕其功于一役了。

  在硬件上做适配,做调优,和做互联网不一样。

  这里需要的不是什么快速迭代、小步快跑,这是一件必须沉下心来,慢慢扣、慢慢做的事情。

  心急吃不了热豆腐。

  干起活来很痛苦,这是很正常的。

  今天拿起分析工具一跑,运算效率又波动了,为什么?

  不知道啊,可能是因为显存访问模式不一样了,可能是因为寄存器压力不一样了,也可能是编译器展开方式不一样了。

  想知道为什么,只能一个一个试过去。

  拿着分析数据一点点猜。

  所以江松然把训练算子适配的任务压下来的时候,范小天就很不舒服。

  但他也能猜到原因。

  一定是大老板给的压力太大,把江松然的进度压变形了。

  毕竟这么不切实际的任务,不像是一个在行业里干了十几年的老兵能派出来的。

  大老板可能是不懂,也可能是有投资人那边的压力,也可能是模型做的太好、心态飘了。

  反正不管怎么样,范小天已经给源智在心里调低了评分。

  理想终究是错付了。

  摇了摇头,把这些杂念赶出大脑,他在公司提供的链接下单了晚餐的外卖,然后开了一听可乐。

  哪怕老板再傻逼,活还是要干,毕竟他拿的薪水也不低。

  范小天面前的屏幕上,开着的是江松然共享的算子适配列表。

  作为团队里最资深最有经验的几名工程师之一,他分配到的几个算子都是比较有难度的,还全是红色的。

  其中最难的就是这个FusedAttentionBackward【注意力融合反向算子】。

  范小天看着这个名字,揉了揉太阳穴,忍不住叹了一口气。

  这玩意儿太难啃了。

  范小天以前在英伟达的时候,类似的融合反向算子也不是普通工程师能随便碰的。

  这里面的步骤太多了,什么Attention反向、Softmax数值稳定、共享内存布局、寄存器生命周期、Warp内通信、多级Tiling,还有训练框架调度。

  这里面哪一样单独拿出来,都够一个新人研究几个月的。

  把它们融合在一起,要保证所有的算子都能在内核上运行无误,还要保证效率,还要确保内存不溢出,这简直是地狱级的难度。

  在硬件调优的所有工作里,这也算得上是皇冠上的明珠。

  说实话,这种活范小天以前是轮不上做的。

  这也就是来了源智,矮子里面拔将军,只能让他顶上了。

  至于做到和英伟达一样的效率,他是想也没有想的,做不到。

  大概估算一下排期,如果给他几个熟手一起,加班加点的干,可能几周时间能把正确性跑通。

  至于性能优化,那没几个月是干不下来的,干完之后能到英伟达基准的百分之八十就够他出去和前同事吹牛的了。

  就这,还得看L100的编译器配不配合。

  开始工作前先上柱香,看能不能让机魂大悦。

  硬件做得时间久了,人都变迷信起来了。

  范小天没打算做【注意力融合反向算子】,他准备把难啃的骨头留到最后啃——有可能做着做着大家发现实在做不出来,这个骨头就不用啃了。

  他在关闭浏览器前又瞥了一眼。

  然后关掉了浏览器。

  范小天站了起来,准备去取外卖。

  突然,他整个人一愣。

  刚才那个页面,我是不是看见什么了?

  什么呢?

  范小天心神不宁地往前走了两步,又退了回来。

  虽然可能是看错了,但要是不确定一下的话,总觉得心里不舒服。

  他鬼使神差地又打开了刚才关掉的页面,发现真的有东西。

  【注意力融合反向算子】的代码库有个新提交。

  “FusedAttentionBackward adapter completed”。

  做完了?谁这么大口气啊?

  范小天点开看了看提交者的用户名。

  [email protected],范小天仔细想了想,想不起这是谁的用户名。

  公司分配的邮箱都是按照名字来的,像他的用户名就是[email protected]

  怎么还有人可以给自己起名的?

  这谁啊?

  范小天抬起头来环顾了一圈,想看看是不是哪个同事在搞恶作剧,但是感觉没有人在注意这边。

  他又低下头打开了提交的代码。

  代码量并不大。

  但是他看着看着就瞪大了眼睛。

? 第二百八十八章 你不知道NullPointer是谁?

  范小天把这不算太长的代码从头看到尾,又从尾看到头。

  然后又从头看到尾。

  整整看了半个小时。

  说实话,他没看懂。

  没看懂不是因为代码写的烂,恰恰相反,是代码写的太优雅了。

  优雅的不像是适配层的代码。

  适配层的代码有个特点。

  它需要追求极致的性能,但这也是有代价的,有时候不得不牺牲可读性。

  这和做互联网的程序员不一样,对他们来说,程序的运算效率并不是最重要的,可读性反而更重要。

  因为代码终究是写给人看的,一个组里那么多工程师,今天你来写,明天我来写,如果你写的东西别人都看不懂,那就很容易出Bug。至于你写的这个程序是不是会快或者慢几十毫秒,相对来说不那么重要。

  所以互联网程序的代码往往不需要极致的优化,但是代码规范的要求却很严格。

  而硬件适配层的代码就不一样了。

  可读性当然也重要,但是硬件的使用效率往往追求极致,几毫秒的效率损耗会在高强度的运行下把成千上万倍的放大,所以里面经常会有各种奇技淫巧的骇客(hack)方法。

  所谓骇客方法,是编程里的黑话,指的是那种不太规范,但是好用的方法。

  比如说在显卡里,正常应该运行时计算出显存和内核的比例,但是这个数又不会经常变化,运行时计算凭空加了损耗,所以骇客方法就是把这个比例写死在代码里。

  虽然这就导致这个代码放到别的硬件上完全没法用,因为比例是写死的,但是能够提高运行效率。

  但是刚刚提交的这段代码,里面没有范小天平时看到的各种难以理解的骇客方法。

首节 上一节 327/448下一节 尾节 目录txt下载

上一篇:这个导演不讲规矩

下一篇:我在中东造军火,被全球通缉?

推荐阅读