Question Study

Nvidia 面试题专题

本地面经库有 28 条来源 URL 去重后的记录,其中 28 条有正文;目前整理出 43 道代表练习题,其中 43 道已完成独立深文。题目清单仍在逐帖核对和补充。

Reading Guide

如何使用这份题目清单

题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。

先分岗位

Nvidia 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。

合并同题变体

相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。

练习顺序

先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。

Deduplicated Question Map

按考点去重的代表题

同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。

Graph API · 02

设计 graph API 的 insert/configure/validate,检测 cycle、type mismatch 和 dependency order

设计 graph API 的 insert/configure/validate,检测 cycle、type mismatch 和 dependency order。

解题切入:图 API 先校验节点/边类型,再用拓扑排序检测 cycle 和执行顺序;configure 后需重新验证受影响子图。

阅读这道题的独立深文 →
C++ Debug · 03

定位 use-after-free、double free 或 race condition,说明 sanitizer、最小复现、修复和回归测试

定位 use-after-free、double free 或 race condition,说明 sanitizer、最小复现、修复和回归测试。

解题切入:用 ASan/TSan 把内存错误与竞态分开;缩小到最小复现后修生命周期和所有权。

阅读这道题的独立深文 →
C++ / Memory · 04

实现带 128 字节内联缓冲区的高性能字符串构造

实现带 128 字节内联缓冲区的高性能字符串构造;解释短串/长串边界、memcpy 与 strncpy、深拷贝、移动、对象布局和性能验证。

解题切入:短串长度小于 128 时就地存储并补终止符,长串分配 length+1;堆指针要求析构、深拷贝和移动,sizeof 与性能需在目标 ABI 和负载上验证。

阅读这道题的独立深文 →
AI Infra / Kubernetes · 05

在新云账号中首次搭建计算集群并部署 Kubernetes

在新云账号中首次搭建计算集群并部署 Kubernetes;说明托管/自管选择、网络、IAM、节点、镜像、存储、入口、监控和验证顺序。

解题切入:首次在新云账号部署 K8s 集群先确定托管或自管控制平面,再按网络/IAM、节点、镜像与存储、入口、监控顺序落地;用最小工作负载验证端到端路径。

阅读这道题的独立深文 →
Data Coding · 06

三份日志各代表一天,每行给用户及错误次数

三份日志各代表一天,每行给用户及错误次数;找出三天里每天累计错误数都严格超过 10 的用户,处理同一天重复用户行。

解题切入:每天先按用户聚合错误次数,再与上一天满足严格大于阈值的候选集求交;重复用户行要累加,不能逐行直接比较。

阅读这道题的独立深文 →
OOD / Coding · 07

实现内存 VM manager

实现内存 VM manager:列出、添加、修改、删除带属性的虚拟机;重复 ID 和不存在的 ID 要有明确错误处理。

解题切入:用 VM ID 索引属性,add 拒绝重复,modify/delete 拒绝不存在;返回属性副本防止调用者绕过 manager 直接改内部状态。

阅读这道题的独立深文 →
C Coding · 08

用 C 语言实现两个系数数组表示的多项式相乘,例如 (x³−2x+5)(x²+2x+4)

用 C 语言实现两个系数数组表示的多项式相乘,例如 (x³−2x+5)(x²+2x+4);自行定义输入输出 API 和内存边界。

解题切入:约定系数数组下标就是幂次,结果的第 i+j 项加上 a[i]×b[j];C 接口要明确输出缓冲区长度、空指针和整数溢出前提。

阅读这道题的独立深文 →
Log Coding · 09

处理包含状态码和响应时间的日志,按状态码聚合请求数与平均响应时间

处理包含状态码和响应时间的日志,按状态码聚合请求数与平均响应时间;先约定非法记录、空输入与时间单位。

解题切入:按状态码维护 count 与响应时间总和,最后用 sum/count 求平均;无记录的状态码不输出,单位与非法值处理在读取日志前确认。

阅读这道题的独立深文 →
Grid Coding / 训练版 · 10

给定 0/1 地块网格,原有树为 1,在上下左右都不能与已有或新树相邻的条件下选择新树位置

给定 0/1 地块网格,原有树为 1,在上下左右都不能与已有或新树相邻的条件下选择新树位置;明确是求任意可行解还是最多棵。

解题切入:先区分找一组合法新树与求最多新树:行优先贪心可得极大解但不保证最大;测试原有树、边界与新树之间四邻冲突。

阅读这道题的独立深文 →
C++ / Performance · 11

转置二维矩阵并解释行优先/列优先布局、缓存访问、非方阵与大矩阵性能

转置二维矩阵并解释行优先/列优先布局、缓存访问、非方阵与大矩阵性能;可用分块转置讨论 locality。

解题切入:行优先输入中元素 (r,c) 的偏移是 r×cols+c,转置后的偏移是 c×rows+r;分块访问减少大矩阵跨行步长带来的缓存损失。

阅读这道题的独立深文 →
ML Coding · 12

按 softmax(QKᵀ+b)V 实现单头 attention,b 为位置索引差的绝对值

按 softmax(QKᵀ+b)V 实现单头 attention,b 为位置索引差的绝对值;先确认原帖正号与 decaying 名称的冲突,再解释稳定 softmax、形状和复杂度。

解题切入:先核对距离偏置符号:原帖写 +|i−j| 会提高远处位置权重;若要衰减应明确负号与系数。逐 query 稳定 softmax 后对 V 加权。

阅读这道题的独立深文 →
System Design · 13

设计可扩展的 photo view app

设计可扩展的 photo view app:照片元数据、对象存储、缩略图、CDN、访问权限和缓存失效;重点讨论 oncall、监控与故障处置,不额外假设 feed timeline。

解题切入:先固定照片查看与缩略图范围,写路径由训练假设补足;元数据鉴权后给短期可用 URL,二进制走对象存储/CDN,监控可用率、延迟与处理积压。

阅读这道题的独立深文 →
Log Coding · 14

解析日志并统计每种 item 的出现次数,返回 Top N

解析日志并统计每种 item 的出现次数,返回 Top N;先确认日志语法、坏行处理和同频排序规则。

解题切入:逐行解析 item 并累加频次,最后以次数降序和明确的并列规则选 Top N;日志语法、坏行、窗口及 N=0 的行为须先约定。

阅读这道题的独立深文 →
Stack Coding · 15

检查数学表达式中的括号是否按种类和嵌套顺序匹配

检查数学表达式中的括号是否按种类和嵌套顺序匹配;用栈处理提前闭合、交错闭合和末尾残留左括号。

解题切入:扫描表达式时只把左括号压栈;右括号必须匹配栈顶,结束时栈为空。括号计数相同不代表嵌套合法,字符串与转义需另加词法处理。

阅读这道题的独立深文 →
System Design · 16

同步云厂商计划维护与 outage 到自有 dashboard,并澄清双向是否要求回写

同步云厂商计划维护与 outage 到自有 dashboard,并澄清双向是否要求回写;设计事件版本、幂等、冲突、对账、告警和故障恢复。

解题切入:厂商事件进入 inbox 后做版本化规范化和幂等更新,再刷新 dashboard;本地确认或备注只有厂商提供可写 API 时才进入回写 outbox。

阅读这道题的独立深文 →
Sliding Window · 17

求字符串中无重复字符的最长连续子串

求字符串中无重复字符的最长连续子串;用 last-seen 位置推进左边界,明确只返回长度还是子串及并列规则。

解题切入:用字符上次位置维护无重复窗口;重复字符只在上次位置仍在窗口内时推进左边界,严格更长时更新答案以保留最早并列项。

阅读这道题的独立深文 →
ML Evaluation · 18

解释 confidence calibration 的定义与方法

解释 confidence calibration 的定义与方法;用可靠性分箱、ECE、NLL 检查预测概率,再讨论 temperature scaling 和业务决策阈值。

解题切入:校准要求预测置信度与经验正确率相符;按概率分箱比较 accuracy 与 confidence,同时看 NLL/Brier 和关键人群。温度缩放需在独立校准集拟合。

阅读这道题的独立深文 →
ML Monitoring · 19

解释 model drift 的含义与检测

解释 model drift 的含义与检测:区分输入分布漂移、训练线上不一致和有标签后的表现退化,给出分组监控、告警与回退路径。

解题切入:漂移先分输入分布、训练/线上 skew 与模型效果变化;无标签时监控特征和预测分布,有标签后核对质量与业务指标,分组定位再决定回退或重训。

阅读这道题的独立深文 →
ML Foundations · 20

解释 bias-variance tradeoff,并在具体客户场景下分别提出降低偏差和方差的办法

解释 bias-variance tradeoff,并在具体客户场景下分别提出降低偏差和方差的办法;说明数据、模型容量和评估切分的取舍。

解题切入:先看训练与验证误差及分组失败样本:两者都高偏向欠拟合,高训练集表现与大泛化差距偏向方差;降偏差或方差的措施需在独立验证集和业务指标上复测。

阅读这道题的独立深文 →
LLM / Model Selection · 21

比较 8B、30B、120B 参数规模在质量、延迟、显存与成本上的取舍

比较 8B、30B、120B 参数规模在质量、延迟、显存与成本上的取舍;先定义任务、上下文长度、峰值并发和评估集,再做目标场景选择。

解题切入:8B/30B/120B 只是参数量级,不保证质量排序;按目标任务、推理 SLA、并发和成本做同条件评测,再把权重显存、KV cache 与量化余量一起预算。

阅读这道题的独立深文 →
ML Evaluation · 22

如何判断模型好坏

如何判断模型好坏:先定义任务和失败成本,再做有代表性的离线评测、分组坏例分析、人评与小流量线上实验,连同延迟和成本验收。

解题切入:评价模型先固定目标任务和误判成本,按同一数据切分与提示条件量测离线质量、关键分组、人工坏例和线上业务指标,同时纳入延迟、吞吐及每请求成本。

阅读这道题的独立深文 →
Performance · 23

用 Amdahl 定律估算并行优化上限

用 Amdahl 定律估算并行优化上限;先量测可并行比例与 CPU/GPU 传输开销,再判断加核、kernel 优化或改数据路径的收益。

解题切入:Amdahl 的 S=1/((1−p)+p/N) 只在固定工作量等假设下估算上限;CPU/GPU 传输、同步和调度会增加非并行时间,先 profile 再决定优化位置。

阅读这道题的独立深文 →
Matrix / Performance · 24

推导 M×K 与 K×N 矩阵乘法 O(MKN) 复杂度

推导 M×K 与 K×N 矩阵乘法 O(MKN) 复杂度;实现 row-major 分块 tiling,解释缓存/显存访问、边缘块与 CPU/GPU 优化差异。

解题切入:矩阵乘法一般 M×K 乘 K×N 为 O(MKN);分块不改乘加量,改变 A/B/C 的局部复用。row-major 的索引、边缘 tile 与目标硬件实测决定实现。

阅读这道题的独立深文 →
GPU Memory · 25

解释 HBM、片上 SRAM/shared memory、寄存器与缓存的容量、可见范围和访存取舍

解释 HBM、片上 SRAM/shared memory、寄存器与缓存的容量、可见范围和访存取舍;用 matmul tile 算一次数据复用与资源预算。

解题切入:GPU 的全局显存通常承载大张量,片上 shared memory/寄存器承载短期复用;明确 CUDA local memory 不等于片上 SRAM,并用 tile 大小、occupancy 与访存模式解释取舍。

阅读这道题的独立深文 →
MLP / Tensor Shapes · 26

推导两层 MLP 从 [B,D] 经隐藏层 [B,H] 到 [B,O] 的形状、参数量和计算量

推导两层 MLP 从 [B,D] 经隐藏层 [B,H] 到 [B,O] 的形状、参数量和计算量;解释 PyTorch Linear 权重布局与 bias 广播。

解题切入:两层 MLP 先标出 X[B,D]、W1[D,H]、b1[H]、W2[H,O]、b2[O];PyTorch Linear 存权重为[out,in],bias 按末维广播。

阅读这道题的独立深文 →
Linked List Coding · 27

原地反转单向链表

原地反转单向链表;说明 previous/current/next 三指针不变量,处理空链表、单节点和两节点,不额外复制节点。

解题切入:反转单链表时先保存 current.next,再把 current.next 指向 previous;每轮已处理前缀已反转,未处理后缀仍从 current 可达。

阅读这道题的独立深文 →
Kubernetes / Operator · 28

解释 Kubernetes CRD 与 Operator 的分工

解释 Kubernetes CRD 与 Operator 的分工:自定义资源承载期望状态,控制器循环协调实际状态;讨论状态回写、幂等重试、删除清理及何时值得自建 Operator。

解题切入:CRD 定义可通过 Kubernetes API 管理的自定义资源;Operator 再用控制器持续协调 spec 与实际状态。先问清被管理资源,再讨论幂等、status、finalizer、RBAC 和失败重试。

阅读这道题的独立深文 →
Developer Experience / Product · 29

为新的 AI 软件功能定义开发者易用性的可验证指标

为新的 AI 软件功能定义开发者易用性的可验证指标:从任务完成、首次上手时间、代码/步骤、可靠性、满意度与实际采用率设计分组试验。

解题切入:开发者易用性先固定用户、任务和对照版本;分别量测完成率、首次成功耗时、步骤/代码量、失败恢复、满意度和持续采用,按经验水平分组,避免只用性能提升替代易用性。

阅读这道题的独立深文 →
ML Frameworks · 30

比较 PyTorch 与 JAX 的执行模型、自动微分、编译、生态与硬件支持

比较 PyTorch 与 JAX 的执行模型、自动微分、编译、生态与硬件支持;说明两者都能编译,不能用‘Python vs GPU’简单二分。

解题切入:PyTorch 常从 eager/autograd 工作流出发,也有 torch.compile;JAX 常用纯函数与 jit/grad/vmap 变换。比较同一任务的动态形状、调试、编译成本、设备后端和生态,不把任何一方说成只能 CPU 或只能 GPU。

阅读这道题的独立深文 →
Model Compilation · 31

从模型定义到 GPU 执行梳理前端、图捕获或 eager op、IR/优化、kernel、运行时与数据传输

从模型定义到 GPU 执行梳理前端、图捕获或 eager op、IR/优化、kernel、运行时与数据传输;澄清 ONNX 导出并非必经阶段。

解题切入:模型运行路径依框架而异:构建操作或捕获图、生成或选择中间表示、优化和 lowering、生成/调用 kernel、运行时分配与 launch;ONNX 是可选的交换/导出格式。

阅读这道题的独立深文 →
Compiler Optimization · 32

解释 kernel fusion 与量化的作用、收益边界和验证方法

解释 kernel fusion 与量化的作用、收益边界和验证方法;区分减少 launch/中间访存与降低数值精度带来的代价。

解题切入:融合可减少中间显存读写和 kernel launch,但会受寄存器压力、并行度及依赖限制;量化改变数值表示,需校准和质量验证。分别报告冷启动、稳态延迟与输出误差。

阅读这道题的独立深文 →
Technical Marketing · 33

给定一个新的 AI 软件技术,向工程团队先问什么,如何把 benchmark、适用条件、开发者价值和采用阻力组织成可验证的技术文章?

给定一个新的 AI 软件技术,向工程团队先问什么,如何把 benchmark、适用条件、开发者价值和采用阻力组织成可验证的技术文章?

解题切入:技术推广先问目标用户与任务、改进机制、支持矩阵、公平基线、复现实验、失败情形和采用成本;用可核验数据与示例回答‘为什么值得迁移’,而不是只列单一 latency。

阅读这道题的独立深文 →
Product / Benchmark · 34

是否在技术博客中与竞品比较?定义公平基线、可复现实验、用户决策价值、法律审阅与 NDA 边界

是否在技术博客中与竞品比较?定义公平基线、可复现实验、用户决策价值、法律审阅与 NDA 边界。

解题切入:竞品比较先确认目标用户的决策问题,再固定硬件、软件版本、工作负载、精度与测量脚本;同时披露有利与不利条件,经过法律及保密审阅后发布可复现结果。

阅读这道题的独立深文 →
Python / Concurrency · 35

解释 CPython GIL 对 CPU 密集与 I/O 密集线程的影响,并区分默认构建、free-threaded 构建、进程池与释放 GIL 的扩展

解释 CPython GIL 对 CPU 密集与 I/O 密集线程的影响,并区分默认构建、free-threaded 构建、进程池与释放 GIL 的扩展。

解题切入:默认 CPython 构建的 GIL 限制同进程多个线程同时执行 Python 字节码;I/O 等待可交错,CPU 并行可考虑进程或经核实会释放 GIL 的扩展。新版本可选 free-threaded 构建,需确认运行时状态,不能说 Python 线程永远无法并行。

阅读这道题的独立深文 →
Python / Language · 36

解释 Python decorator 的 `@` 展开、闭包、参数转发和 `functools.wraps`

解释 Python decorator 的 `@` 展开、闭包、参数转发和 `functools.wraps`;说明日志、缓存等用途及装饰顺序与异常边界。

解题切入:`@decorator` 等价于定义后把函数重新绑定到 decorator(function);包装器用 *args/**kwargs 转发、functools.wraps 保留元数据。带参数装饰器多一层工厂,多个装饰器按从内到外应用。

阅读这道题的独立深文 →
Coding / Generalization · 37

实现 FizzBuzz,并讨论传入数字到输出文字的 map 后如何处理多规则命中、排序与重复查询

实现 FizzBuzz,并讨论传入数字到输出文字的 map 后如何处理多规则命中、排序与重复查询。

解题切入:标准 FizzBuzz 可扩展成除数→文字规则表;先约定多规则命中顺序与无命中输出,重复查询可缓存已算结果或按有限周期预计算。

阅读这道题的独立深文 →
Stream / Top K · 38

从流数据中找 Top K 元素

从流数据中找 Top K 元素;先确认排名键、窗口和重复口径,再比较小顶堆、计数桶与有界整数值域。

解题切入:流 Top K 先分清最高数值、最高频或窗口内最高;通用固定 K 小顶堆 O(n log K),桶 O(1) 只在有界离散值域和明确更新/查询口径下成立。

阅读这道题的独立深文 →
Behavioral · 39

讲遇到的最难问题,你如何定位难点、尝试方案、协作解决并验证结果?

讲遇到的最难问题,你如何定位难点、尝试方案、协作解决并验证结果?

解题切入:最难问题用真实技术/组织约束解释难度,说明如何拆因、验证假设、求助和复盘,不能只说规模大。

阅读这道题的独立深文 →
Behavioral · 40

当你与同事意见不合时怎么办?给一次真实分歧的证据、决策与后续合作

当你与同事意见不合时怎么办?给一次真实分歧的证据、决策与后续合作。

解题切入:意见不合先复述双方合理目标和证据,约定决策人/实验条件;决定后执行并监控,而非把对方写成反派。

阅读这道题的独立深文 →
Project Deep Dive · 41

介绍最骄傲的项目,说明本人贡献、最关键的技术取舍、挑战与可核结果

介绍最骄傲的项目,说明本人贡献、最关键的技术取舍、挑战与可核结果。

解题切入:最骄傲项目讲为何重要、自己推动的决定与可验证结果;区分团队成果和个人贡献,并准备失败或替代方案追问。

阅读这道题的独立深文 →
Behavioral · 42

讲一次与他人合作完成复杂工作的经历

讲一次与他人合作完成复杂工作的经历:目标、责任边界、分工、交接和最终结果。

解题切入:合作题把共同目标、自己的责任与他人的贡献分开;说明怎样处理接口/时间交接、确认共识和追踪结果,不把合作简化为开会。

阅读这道题的独立深文 →
Architect Deep Dive · 43

讲你主导过的基础设施或 AI 架构项目

讲你主导过的基础设施或 AI 架构项目:需求、替代方案、取舍、供应商协作、落地与长期运维。

解题切入:架构项目先写非功能约束和备选方案,再讲为何选某平台/供应商、迁移与回滚、运维指标和个人领导行为;供应商沟通只讲真实经历。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。

查看 Nvidia 面试全攻略 →
✓已复制微信号!