AI深度学习算法推理加速CUDA HPC类岗位-英伟达面经

前几天才面了下nvidia,面试官问了一堆底层问题,好多没答上来...

这次记录下,欢迎大家一起讨论...

哈哈标题党了,我其实不是学生,分享一下我作为一名面试官常问的AI推理加速HPC岗位的问题~仅分享通用知识部分,项目部分因人而异这里省略

C++部分

1、为什么我们做C++项目的时候,需要写头文件?

2、讲出static关键字的一种应用场景

3、单例模式如何实现?

4、讲讲四种类型转换

5、拷贝构造函数中浅拷贝和深拷贝的区别?

6、一个类要去访问另一个类的private数据成员,该如何操作?

量化quantization部分

1、说说你知道的那些针对LLM的量化技法?

2、smoothquant为什么可以解决int8 LLM的accuracy问题?

3、bfloat16和fp16(half float point)同样内存大小,那么它们可以节约的内存大小应该是一样的吗?他们的优缺点主要有哪些?

4、量化怎么平衡精度和速度?

CUDA部分

1、讲讲shared memory bank conflict的发生场景?以及你能想到哪些解决方案?

2、CUDA里面如何分配GPU显存?为什么里面的参数是二级指针?

3、优化CUDA程序的访存效率,你可以想到哪些?

4、优化CUDA程序的计算效率,你又可以想到哪些?

大模型部分

1、有哪些encoder-only、decoder-only、encoder-decoder的模型?

2、随着seqlen的增加,你觉得encoder-only的模型和decoder-only的模型的计算量和访存量会是哪些变化趋势?为什么?

3、说说你知道的大模型训练or推理的常用优化手段

4、一般会对哪些大模型里面的算子做算子融合,说说你知道的

5、flash attention的原理讲讲?你认为为什么flash attention极大提升了训练速度?

6、paged attention的原理讲讲?你认为为什么paged attention极大提升了推理速度?它和flash attention的区别是什么?

以上呢,起始都是非常经典的问题,足够看出大家对AI推理加速HPC岗位的基础。

本人知道最近大家忙着准备实习面试和几个月后的秋招面试 ,同时很多学弟学妹深陷AI算法和后端开发的泥沼,认为只存在这俩职位,本人当初作为应届生的时候也是这样,但其实不然,AI深度学习推理加速HPC类岗位随着nvidia的股价暴涨,需求也是越来越大的,我从去年开始就帮助了很多同学了解这方面、加入这方面、着手实践项目,很多去年都成功拿到了offer,因此欢迎大家ping我,祝大家龙年工作如意~附一些截图

全部评论
大佬你好,请问公众号是什么?
2 回复 分享
发布于 2024-03-07 14:32 上海
用英文面试吗
点赞 回复 分享
发布于 2024-10-01 15:23 广东
给一下答案啊
点赞 回复 分享
发布于 2024-05-10 17:26 广东
狠狠的赞了
点赞 回复 分享
发布于 2024-03-27 15:30 北京

相关推荐

1.请详细描述你在简历中提到的AI相关项目中,负责的主要模块和核心技术贡献。2.在设计一个高吞吐、低延迟的模型推理服务时,你会重点考虑哪些架构层面和工程层面的问题?3.请解释C++程序内存中栈(stack)、堆(heap)和静态/全局存储区的特点与主要区别。4.在C++中,new/delete`与'malloc/free`的主要区别是什么?为什么在C++中通常推荐使用前者?5.请解释深拷贝和浅拷贝的概念,并说明在什么情况下必须使用深拷贝。6.请阐述C++中'std:unique_ptr、'std..shared_ptr和'std:weak_ptr的设计意图、使用场景及相互区别。7.虚函数表(vtable)是如何实现运行时多态的?虚函数与纯虚函数(抽象类)在语义和用法上有何不同?8.什么是内存对齐?编译器对结构体进行内存对齐的主要规则是什么?请计算一个给定结构体(包含不同类型成员)在特定平台下的sizeof大小。9.请解释C++11中右值引用(&&)和移动语义(move semantics)的概念,并说明它们如何用于实现高效的数据转移(如std.:.vector的push_back)。110.简述CUDA的SlIMT(单指令多线程)编程模型,描述thread、block、grid的层次关系。11.在CUDA内核中,一个线程的局部变量通常存储在何处?这与寄存器的分配有何关系?12.在CUDA优化中,如何使用共享内存(Shared Memory)来减少对全局内存的重复访问?请举一个简单的例子(如矩阵乘法中的分块)。13.什么是warp shuffle指令?它在warp内部的数据交换和规约操作中有什么优势?14.解释在CUDA中使用float4或int4等向量化加载/存储指令进行合并访存的原理和性能收益。15.什么是共享内存的bankconflict?它是如何产生的?请举例说明。16.如何通过数据填充(padding)或其他内存布局调整技术来避免或减轻共享内存访问中的bankconflict?17.解释CPU缓存的工作原理,包括时间局部性、空间局部性的概念,以及常见的缓存替换策略18.编程题:实现一个算法,在一个包含大量整数的数据流中,实时找出出现频率最高的前K个元素。请描述你的思路(哈希表+最小堆)并分析时间复杂度。
查看18道真题和解析
点赞 评论 收藏
分享
在改简历的大卫很认真: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专属优化
查看14道真题和解析
点赞 评论 收藏
分享
03-26 10:52
已编辑
门头沟学院 算法工程师
📍面试公司:文远知行一面(更新2026/03/26挂)🕐面试时间:2026/03/20💻面试岗位:AI infra(时长1小时)❓面试问题:一、实习项目拷打10分钟,你在上一家公司做了什么二、八股1、PD分离机制,如何调度两个队列          ——回答PD区别,然后我如何设计调度策略,优先D,也保证P不被饿死2、vllm如何优化显存?                            ——讲了pageattention、continue batching、内存复用3、chunk prefill                                       ——分块计算,我感觉这个没啥好讲的,可能是针对padding吧4、什么是虚拟内存                                   ——这个很简单5、说一下进程和线程的区别,以及操作系统如何调度    ——这个也简单6、讲一下TCP\IP栈                                  ——说实话没听明白,后来询问之后是介绍TCP/IP模型7、追问如何通过IP地址进行通信(找到目标ip) ——这个我其实忘了,随便说了一下洪泛搜索,不知道对不对8、K8S拷打,简历上没写这个                   ——反正基本都不会,应该是炸了,只知道pod和container😓三、手撕(dfs+优化思路)给的测试数据不大,十分钟写了个O(N^N)的算法,运行没问题,然后要求优化成O(N^logN) ——想了很久,提示二分后没时间了,就没写了。四、反问1、我今天表现怎么样答:我感觉你没睡醒😂,状态不好。(我感觉这面试官也一直打哈欠)2、对我有什么建议吗答:简历都挺好的,技术上不应该只追求论文,你可以多了解一下K8S这些3、部门业务是啥答:我们组是做ai infra的,顶层可能是k8s负责调度大模型,中间有做算法优化,底层也有cuda算子优化吧。(这个                面试官介绍的挺详细的,我感觉他是负责K8S调度的)🙌面试感想:发挥不是很好,面试官人挺不错,感觉凉了大半截了,过几天看看结果吧。
查看12道真题和解析
点赞 评论 收藏
分享
评论
24
215
分享

创作者周榜

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