<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://MARD1NO.github.io/</id>
    <title>ZZK&apos;s Blog</title>
    <updated>2024-07-02T02:47:34.613Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://MARD1NO.github.io/"/>
    <link rel="self" href="https://MARD1NO.github.io/atom.xml"/>
    <subtitle>Nothing new</subtitle>
    <logo>https://MARD1NO.github.io/images/avatar.png</logo>
    <icon>https://MARD1NO.github.io/favicon.ico</icon>
    <rights>All rights reserved 2024, ZZK&apos;s Blog</rights>
    <entry>
        <title type="html"><![CDATA[新年日寄，也谈谈过去一年的工作体验]]></title>
        <id>https://MARD1NO.github.io/post/xin-nian-ri-ji-ye-tan-tan-guo-qu-yi-nian-de-gong-zuo-ti-yan/</id>
        <link href="https://MARD1NO.github.io/post/xin-nian-ri-ji-ye-tan-tan-guo-qu-yi-nian-de-gong-zuo-ti-yan/">
        </link>
        <updated>2024-02-10T05:42:33.000Z</updated>
        <content type="html"><![CDATA[<p>今天是大年初一，在老家除了看代码看美剧也没事干，索性就在个人博客里写写过去一年个人体验。之前在知乎上面发过年终总结，碍于篇幅以及想留点面子，就没有吐槽具体事件。日寄的话就不会像平时博客写的那么有章法，就以时间线回顾，就当听故事罢了。</p>
<h3 id="跑路动机">跑路动机</h3>
<p>在oneflow最后那段时期，一方面是远程久了，缺乏交流，加上自己比较宅，有时候遇到难题的时候压力感觉很大；另一方面是疑似被某大厂骗了方案，再加上身边人的一些“玩笑话”，如你这样xxx是没前途的，赚不了钱的（这种话偶尔说说我就当玩笑，当身边一群人那段时间集中说的话，我确实会自我怀疑），有点击溃心里最后一道防线。患上了一段时间抑郁症，干原本喜欢的事情也提不上劲，手臂发抖，睡不着觉，心跳莫名其妙加速，也尝试过看心理医生之类（我觉得没啥用哈。。）。所以最后还是决定不能老呆在家里，出去找个班上，就去了某度的推理框架部门。</p>
<blockquote>
<p>给远程上班族的一些Tips：不能老呆家里，一定要多出去走走！！！平常工作可以选在图书馆，咖啡馆，周末也要多和人交流，多多运动，我现在早上不冷我就坚持早上七点半吃完早餐去骑一小时车，或者在家撸铁</p>
</blockquote>
<h3 id="大公司初体验">大公司初体验</h3>
<p>一开始进大厂感觉还挺新鲜的，上班还有人给你按电梯，有食堂，有专门的会议室等等。然而刚进去两周我其实就想跑路了，新人文档缺失；同事对nsys, ncu等常用profile工具似乎都不熟悉；CodeReview很松，大部分人根本没提出真正有意义的comment，我记得刚进来就对一个同事的集成cutlass PR提了20+comment，另外一个同事对此很惊讶，说我是头一个review这么认真的，以往他们都随便看一下就approve了。然而当时我在oneflow已经呆了2年了，提的200+个PR，没有一个是一次过的，好的代码都是review改出来的。</p>
<p>当时心里已经开始对这份工作降低预期了。刚开始接手是做一个Transformer加速的事情，这一个大算子的作者也早就离职，没有留下任何文档，我一眼扫过去，大部分CUDA代码全都是抄FasterTransformer，我当时就在想你代码都抄的是FasterTransformer，你还想比FasterTransformer快，这可能么？后面这事情也是谜一样的糊弄过去了。</p>
<p>到后面我也才发现大厂的高T其实基本不管技术和写代码了，都在拉通对齐业务，这也是我无法理解的地方，不可能所有东西指望工作经验只有1-2年的T3 T4，一些技术没把控对方向往往就会发展成屎山，现在也确实如我所料叠的越来越多。</p>
<h3 id="毫不逊色">毫不逊色！</h3>
<p>过完年不久，LLM大模型开始火了，我就被叫去北京封闭开发去了。很难绷，又得面对那一个transformer大算子，刚进来不久我已经不知道给领导提了多少次这个算子不可维护，现在看来只是一颗定时炸弹罢了。</p>
<p>2023年有一个草台班子论特别火，这也很符合我搞LLM推理这几个月的感受。写代码，钻研技术的时间其实非常少，大部分时间都在测试，跟业务扯皮。</p>
<p>我无数遍问过自己，我确实是一个写CUDA的高性能计算工程师吧？然而我们大部分日常工作是导出模型，去不同的机器编译推理包，配合服务化测试，测试出了问题QA也不知道什么原因，我们还要ssh上去服务器去查。</p>
<p>最最离谱的是，每次模型上线都整的跟打仗一样，模型效果评估竟然要我们这帮搞推理的去做评测，去给几百条数据推理优化前后版本打GSB。本身推理都开着topp随机性，而且模型参数都有更新，这种东西怎么可能公平比较。再加上客观存在的偏见，我们肯定想着事越少越好，往往还是保证优化过新版本的GSB要更好的。主观客观因素都存在，评这个GSB还有啥意义呢？</p>
<p>随着这个事愈发重要，各个团队也开始产生了利益冲突。大家都想做出新的花活，这可太为难我们推理框架这边的乙方了。一会这个wise那个wise，这个3bit那个4bit，这个量化那个不量化，还没做出来要测试速度，大哥写一个性能好的Kernel哪有那么快？一点argue的余地没有，甚至都没给我profile分析的时间，在如流里还要每天被艾特，我这人最讨厌被人艾特，我特么又不是看不见你信息。再加上那个大OP难以维护的&quot;特性&quot;，简直是痛苦。高T只会推进业务上线，不管底下牛马感受，难以获取人心，技术上目光短浅迟早会失败的。</p>
<h3 id="黑化开始">黑化开始</h3>
<p>刚去公司没多久，也偶尔会听到一些勾心斗角的事情，朋友有时候也会善意提醒，比较纯真的我也没仔细当回事儿，直到后续这类事件真tm发生到我身上，直接黑化：</p>
<p>英伟达作为好兄弟，也是给我们提供了很多建议，其中针对量化，推荐我们去看下FasterTransformer的weightonly技术。妈的这玩意儿一看前途无量，很快就&quot;借鉴&quot;过来了。作为一个有涵养的技术人，我肯定还是不甘心抄人家代码的，封闭开发那段时间的周末我就在酒店研究这kernel（PS：封闭开发前一个月每周六还要来），这也是后面在知乎最早写了一篇讲解weightonly的博客。</p>
<p>后面领导安排嫡系去优化一个小模型在bsz=1的时延，NV的好兄弟们说可以用GEMV。因为之前有研究过weightonly，所以weightonly int8的gemv很快就写好了。然而领导让我指导这位高贵的嫡系去写weightonly int4 gemv，嫡系之前也没接触过cuda，我就很傻逼的当了个好人前前后后花了2小时给他讲原理，实现，甚至还给他放出了我知乎文章让他看。</p>
<p>好家伙，季度会上嫡系获奖，一行大字，“创新性的提出了weightonly int4 gemv技术”，每次季度会上我一直都写代码的，然后当时坐我身边的同事很诧异的看了我一眼，我当时还没反应过来是怎么一回事，后面才发现嫡系把我们四个牛马做的东西全特么写上去了。</p>
<p>那一晚上回去我立马把2023年写的知乎全删了</p>
<p>后续也给这位嫡系干了不少擦屁股的事情，都给我等着</p>
<h3 id="最没有人情味的一集">最没有人情味的一集</h3>
<p>自搞这逼玩意儿起，我一直在安慰自己不是最惨的，最惨的还是隔壁起服务的。隔壁领导眼红大模型，便抢了个垃圾服务上线的活过来，好家伙直接把原本的产品整崩了，全员起服务。起服务是上线最后的一环，我也不是很理解为啥一定要在一天之内排上线，各个环节各种delay，导致起服务的牛马们需要半夜三更起床上线服务。后续也干不下去了，那边的领导也不闻不问，无所吊谓，反正他还有其他的团队可以圈地盘。</p>
<p>我深刻体会到这是跟oneflow最不一样的地方，大公司你就只是个牛马而已，多你一个少你一个无所谓，干废一批耗材我再招就是了。在oneflow确实可以让你有发挥的空间，每个人都很重要。</p>
<h3 id="打响跑路第一枪">打响跑路第一枪</h3>
<p>对整个团队和所做的事情失望累积到一定程度后，我开始思考要不要换一份工作。我妈说我晚上回家脸都是黑的，自我感觉也是，每天都害怕上班，时刻盯着手机，睡觉虽然8小时+，但就是睡不醒，身心俱疲，不是手臂抻到了，就是腰扭了，周末啥事也不想做。</p>
<p>认真面试的其实就只有好兄弟英伟达家，不得不说英伟达面试体验非常棒，面试官会从GPU优化角度一步步引导出实际问题，考察编程，并不是很死板的上leetcode做题。我觉得他们了解我，考的我很到位，我头一次觉得面试非常开心的度过。当时最后还是泡池子挂了，CUDA问题都会，cpp写的太少了。</p>
<h3 id="提出离职">提出离职</h3>
<p>提出离职后，小领导，大领导，经理前前后后找我谈话了四次，各种画饼，我这人对什么职级薪酬真的无所谓的，干的不开心，做的事情自己不认可，我就是干不了。我想着好聚好散，提离职前还被派了一个长序列推理的活，我那几周都没有摆烂（妈的隔壁组人提完离职真的是放飞自我了），还加班加点的留文档写代码。本来我可以直接摆烂休年假的，但我没有。</p>
<p>后面谈话一直想让我拖一会离职时期，但我真的是一天都忍不了了。直到最后我才知道他们不是单纯想留我，而是因为没有人力，想让我跟完长序列服务上线，当时只是完成了这一个功能，我真是草了，这做人能这么自私？</p>
<p>到最后定了lastday后，我想请两天年假，小领导给我来了句：你不是说你不请假的吗？，真的，黑化到极点了，我很确信我对这团队没有一丝留念。</p>
<h3 id="回流">回流</h3>
<p>回到最初最熟悉的公司感觉还是最棒的，我还是归属于老大管，请记住，我口中的老大永远只会指代辣个男人，它是最有技术魄力的人。回来还是先补齐了新推理框架缺失的量化加速功能，这一个月很快啊，weightonly,smoothquant，对称非对称一个人搞定了，还包括调优，profile也足够充分，工作效率足够高，没人跟我扯皮了，我们是专业团队。</p>
<p>我会用行动去让草台班子们后悔的</p>
]]></content>
    </entry>
</feed>