123
返回列表 发新帖
楼主: go4jobs
跳转到指定楼层
上一主题 下一主题
收起左侧

突然想学习了 - llm inference学习佛系打卡

   
🔗
 楼主| go4jobs 2026-11-2 16:26:15 | 只看该作者
全局:
可以听雨和看书的周末无比幸福啊。看到一句很喜欢的话“大地上的秋天隆重得如国王登基的庆典”,很是应景。
休息好了继续看了会儿spill的前因后果:每个thread拿到自己的那份任务后(TMxTNx128),先是把需要的数据从DRAM里全部搬到shared memory里,然后4B一组一组地搬到register里计算,搬4B就算4B,暂时/很长一段时间内都不需要的数据立马free掉memory,需要的继续存在shared memory里。没法立即free掉的数据比较多的时候就会造成spill,放到L1/L2 cache/DRAM里去,需要的时候reload回来复用。如果tile太大,每个thread需要的data太多,shared memory放不下的时候,会把多出来的data切碎,直接按照4B一组一组地进register然后计算再park进cache,等这些多余的全部都park进cache了,剩下的直接load进shared memory里,按照正常算。这里一个问题是,register是thread-based的,所以data通过register搬进来进cache的即使是相同的数据也会有不同的address,会导致cache里有大量的duplicate。所以导出模型的时候,最好按照shared memory的大小来。
今天linkedin收到大厂compiler/model optimization岗位的reach out,像是在我家安了监控一样,我也是出息了啊,可惜还没入门。
回复

使用道具 举报

🔗
 楼主| go4jobs 2026-11-3 15:27:17 | 只看该作者
全局:
今天偶然刷到一本书,how to scale your model,信息量有点大,感谢Deepmind。看了2个section,单卡roofline的计算和多卡通信,做完了所有题目,理解了90%吧,还有个别句子没理解的。怀念一把手搓的教程。
https://jax-ml.github.io/scaling-book/index
回复

使用道具 举报

🔗
 楼主| go4jobs 2026-11-4 16:13:48 | 只看该作者
全局:
继续刷这本书:Section 3 - 6。人都看傻了,脑子在疯长。曾经那些熟悉的纸上的概念被一个个拆碎:TP/FSDP/DP/PP,sharding……看transformer的时候:嘻嘻,matmul计算量直接2*所有unique维度,FLOPS估算=2*总参数量*num token;看training的时候:不嘻嘻,什么时候需要AllReduce/AllGather/ReduceScatter/AlltoAll以及不同的cost,算多卡在不同shading情况下从bandwidth-bound变成compute-bound条件头都大了……没事儿,有些知识跟我缘分未到,不强求。总是比昨天又进步了一点的!
回复

使用道具 举报

🔗
 楼主| go4jobs 2026-11-5 15:40:32 | 只看该作者
全局:
终于来到核心了,刷到inference章节。prefill和generation(decode)阶段的bottleneck计算。MLP部分bottleneck切换条件是B(batch size),Attention部分是(TS/(T+S)),S是kv的seq_len,T是query的seq_len。所以prefill阶段B>accelerator intensity(e.g. 240)以及T/2>accelerator intensity就是compute bound(easy);decode阶段B很难到accelerator intensity(除非batching很多request),以及decode阶段TS/(T+S)约等于1,也就是永远都是memory-bound。还只看了半章,困了,歇!
回复

使用道具 举报

🔗
 楼主| go4jobs 2026-11-6 15:55:20 | 只看该作者
全局:
inference section 到2/3了。计算LLM的理论性能上限,减小latency的方法(主要是减少kv cache,因为decode是memory-bound)以及多卡推理。太困了……歇!每天需要10+h睡眠沾床就睡的我上辈子怕是没睡过觉……日拱一卒吧
回复

使用道具 举报

🔗
 楼主| go4jobs 7 天前 | 只看该作者
全局:
只剩最后一章:GPU啦!今天主要看了LLM的serving,相当于production-level的优化。compiler是op-level/graph-level的优化resource,但是LLM有prefill和decode两个bound不同的阶段,为了提高资源利用率和平均响应速度,需要按需规划这两个阶段:比如edge端request少,可以放一起;cloud端request多,可以做PD分离,P不做batch,D做batch。还有continuous batching, prefix cache……主要是orchestrating的工作。还有profile:看trace/graph/memory usage。感觉trace用处比较大。(我的天!回头看了下主楼,能看懂那三层知识点了!不知不觉……)
回复

使用道具 举报

🔗
 楼主| go4jobs 6 天前 | 只看该作者
全局:
终于看完最后一章了,这章目前还没啥收获。终于刷完这本教程了,感觉适合作为第一和三阶段材料……额,我是从哪里忘记看compiler的来着…还差compiler backend没看是怎么回事。anyway,看完感觉差不多是上完101的水平了,对基础概念的大概理解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表