AI infra 人才库面经总结

ai infra八股:
1- 给定训练所需的Tokens,怎么估计模型训练所需的完整时间?
2- Prefill和Decode阶段各有什么优化技术?
3- 什么是Two-batch overlap,什么场景Two-batch overlap是负优化?
4- megatron-lm中通信优化怎么做?
5- 多机PD分离会有KV cache transfer开销,为什么还要做PD分离?
6- muon和AdamW的pretrain和posttrain为什么不能混用?
7- 如何看待跨SM的PD分离和AF分离?
8- cuda的global memory和shared memory访存分别需要注意什么?
9- deepseek-V3的优化点
10- deepseek-DSA和NSA,MoBA的区别
11- nccl中的通信源语有哪些?all-reduce参数更新一次参数需要几次通信?
12- 在小数据量场景使用NVSHMEM,每个GPU直接读取其他GPU的数据,在本地reduce,相比ring all-reduce的好处
13- 训练时如何设计超长序列下的并行
14- 将Ampere架构的算子适配到Hopper架构的卡上,你会对哪些地方进行升级改造?
全部评论
1. 训练时间估算 时间 ∝ 总FLOPs / (算力FP8/FP16 × 利用率) 总FLOPs ≈ 6 × 参数 × Token数 再除以单卡算力、并行数、利用率,就是时长。 ​ 2. Prefill / Decode 优化 ​ - Prefill:长序列并行、FlashAttention、分块、算子融合、向量化 ​ - Decode:KV cache、连续Batch、PagedAttention、Speculative Decoding ​ 3. Two-batch overlap ​ - 同时跑两个微批次,计算/通信重叠 ​ - 负优化:计算太快、通信太小、显存不够、调度 overhead 盖过收益 ​ 4. Megatron-LM 通信优化 TP+PP+DP三维并行; 重叠通信计算; 分桶AllReduce; 激活重计算; 减少跨节点通信量。 ​ 5. PD分离(PP+DP)为什么要KV transfer 为了流水线+数据并行一起用,提高吞吐; 虽然有KV拷贝成本,但整体能堆更大Batch、更高利用率。 ​ 6. MuON / AdamW 不能混用 优化器状态、动量、更新逻辑完全不兼容; 预训练用一个,微调换另一个,状态不匹配,直接训崩/不收敛。 ​ 7. 跨SM PD / AF 分离 核心:拆任务、提高 occupancy、隐藏延迟; PD:并行度拆分更干净; AF:聚焦注意力/前馈访存与计算重叠; 看模型结构、Kernel瓶颈选。 ​ 8. CUDA Global / Shared 注意 ​ - Global:对齐、连续访问、合并访存、少随机读、用L2缓存 ​ - Shared:防bank conflict、分块复用、同步_sync、容量控制 ​ 9. DeepSeek-V3 优化点 高效架构+长序列支持; 优化Attention/FFN计算; 更好的并行策略; 推理侧低延迟高吞吐。 ​ 10. DeepSeek-DSA/NSA/MoBA ​ - DSA:领域稀疏注意力 ​ - NSA:神经稀疏注意力 ​ - MoBA:混合专家注意力 核心都是稀疏化、省计算、扩容量。 ​ 11. NCCL 原语 & AllReduce 次数 原语:Send/Recv、Broadcast、Reduce、AllGather、ReduceScatter、AllReduce Ring AllReduce:2次(ReduceScatter + AllGather)。 ​ 12. 小数据量 NVSHMEM vs Ring AllReduce 少了Ring多跳延迟; 直接GPU-GPU读+本地Reduce; 小数据下延迟更低、更简单。 ​ 13. 超长序列训练并行 TP+PP+CP(上下文并行)+ ZeRO; 分块Attention、分块FFN; 激活重算+KV复用; 控制通信量。 ​ 14. Ampere → Hopper 算子升级 - 用TF32、FP8、新指令 ​ - 适配TMA、异步拷贝 ​ - 优化Warp调度、 occupancy ​ - 重写Attention/MatMul,用Hopper专属优化
点赞 回复 分享
发布于 今天 11:29 浙江

相关推荐

最近看到很多 92 的,甚至是硕士,开始往测开赛道卷,说实话有点看不懂。先把话说清楚,大厂里的测开,绝大多数时间干的还是测试的活,只是写点自动化脚本、维护测试平台、接接流水线,真正像开发一样做系统、做架构、做核心平台的测开少得可怜,基本都集中在核心提效组,而且人很少,外面进去的大概率轮不到你,我想真正干过人都清楚。很多人被洗脑了,以为测开也是开,和后端差不多,只是更简单、更轻松、还高薪。现实情况是,测开和开发的职业路径完全不一样。开发的核心是业务和系统能力,测开的核心是稳定性和覆盖率,前者是往上走,后者天花板非常明显。你可以见到很多开发转测开,但你很少见到干了几年测开还能顺利转回开发的。更现实一点说,92 的高学历如果拿来做测开,大部分时间就是在做重复性很强的杂活,这种工作对个人能力的放大效应非常弱。三年下来,你和一个双非的,甚至本科的测开差距不会太大,但你和同龄的后端、平台开发差距会非常明显。这不是努不努力的问题,是赛道问题。所谓测开简单高薪,本质上是把极少数核心测开的上限,当成了整个岗位的常态来宣传。那些工资高、技术强的测开,本身就是开发水平,只是挂了个测开的名。普通人进去,99% 做的都是项目兜底型工作,而不是你想象中的平台开发。测开不是不能做,但它绝对不是开发的平替,也不是性价比最优解。如果你是真的不想做开发,追求稳定,那测开没问题。但如果你只是觉得测开比后端容易,还能进大厂,那我劝你冷静一点,这只是在用短期安全感换长期天花板。有92的学历,如果你连测开这些重复性工作都能心甘情愿接受,那你把时间精力用在真正的开发、系统、业务深度上,回报大概率比卷测开要高得多。想清楚再下场,别被岗位名和话术带偏了,就算去个前端客户端也是随便占坑的,测开是一个坑位很少赛道,反而大面积学历下放,不用想也能知道会是什么结果,我想各位在JAVA那里已经看到了工作只是谋生的手段 而不是相互比较和歧视观点很赞👍观点很赞👍观点很赞👍首先上班是为了赚钱校招工资差距不大,难度差异很大,其次上班尽可能进大厂测开也好于中厂前端小厂后端。测开基本上有学历会hot100大厂就能捞去。还卷后端就是三四面拷打加数十个92 的横向比较。在开发也不稳定的情况下,谈什么岗位之间稳定度,都是按部门按年龄裁员,后端也没啥技术含量但是校招面试难。选好进的就完了。选岗要谨慎呀而且你也太高估所谓开发的成长度了,大部分java go程序员,互联网开发干几年十几年除了有一定熟练度,本质上和工作了一两年的根本没啥区别,能用到的开发技术就那么多,大部分人大厂工作期限都不满十年,考虑成长性就很,在我看来算法都没啥成长性和不可替代性。。。。。。行业公司的区别远大于岗位选岗要谨慎呀测测你的有一说一,还真是,绝大多数时间都是干测试的工作,写写checklist,看看流水线啥的,没有任何敲代码的工作但你是字节跳动 已经赢了!字节不至于吧,我们纯开0测继客户端劝退后又有测开劝退,实在不知道该去哪里了我都想把牛客小红书卸载了 越看越焦虑佬,其实大部分人都逃不过35岁命运,更何况现在裁员岁数还在下降,能赚到钱才是实打实的没事的,上交劝退他们就行钱到位就行,岗不岗的不重要92都去后端 我双非才有位置去测开北大是双非是吧但凡能找到能认识的中大厂后端谁去测开啊92不赢的话要高考干什么ai味道你说的对🤔测开真这么卷?大厂的测开也是大厂,又不是每个人都是高强度学习去大厂开发,你是在这劝退那些人抢饭碗?92起点高,但也要学习呢我其实想吐槽双九的软开测开真这么卷?去测开不如去银行电网认同此观点👍说的很在理测开也可以 主要是不倦半步就班的来
点赞 评论 收藏
分享
时间 2026_0228-19:00_百度(1h)1. 自我介绍2. 代码输出题---🅐 aaa - bbb 垂直高度计算<!doctype html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>p {font-size: 16px;line-height: 1;margin-top: 10px;margin-bottom: 15px;}</style></head><body><p>aaa</p><p></p><p></p><p></p><p>bbb</p></body></html>---🅑 对象方法 + this 指向const obj = {fn1() {const fn = () => {console.log(this);};fn();fn.apply(window);},fn2() {function fn() {console.log(this);}fn();fn.apply(window);},};obj.fn1();obj.fn2();---🅒 Promise + setTimeout 执行顺序new Promise((res, rej) => {console.log(1);setTimeout(() => {console.log(2);res("success");console.log(3);}, 0);}).then((res) => console.log(res));console.log(4);---🅓 作用域链const a = 10;function fn() {const a = 20;test();}function test() {console.log(a);}fn();---3. 第一道题结束问到是否了解BFC4. 讲一下事件循环5. 浏览器输入url发生了什么6. 讲讲回流和重绘7. 讲一下闭包8. 选一个自己项目中遇到的难题,怎么解决的讲一下9. 为什么项目要使用SSR?10. 平时怎么使用AI11. 怎么理解rules?12. 写一个类似于百度搜索页的页面(要求实现分页),共享屏幕(新建a.html的时候面试官说起一个工程来写,然后问可以用AI吗,面试官说什么都可以用,然后我打开了Gemini...)13. 新建工程的时候用了pnpm,问到为什么选择使用pnpm(提到幻影依赖)14. 产生幻影依赖的原理知道吗?15. 手撕:反转链表16. 反问了一些学习建议,说看一下掘金里面大佬分享的文章
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务