He had a strong ML background — recommendation systems, ranking, A/B tests, the lot. Halfway through the second round the interviewer asked, casually, whether the operation he had just described was compute-bound or memory-bound. He said he was not sure it mattered at the level he worked at. It mattered a great deal, and the rest of the interview was a polite exploration of everything he had never had to think about, because at his previous company the GPU was a line on a bill.
The most important thing to know about Nvidia ML engineer interview questions is that this is not a product ML loop. There is no feed to rank, no A/B test to design, no feature store. The work is making models run faster on hardware Nvidia builds, which makes the interview a performance engineering interview that happens to be about neural networks. Candidates who prepare with a product-ML playbook prepare thoroughly for the wrong round.
The loop
- Recruiter screen — which org matters more here than at most companies: research, deep learning frameworks, inference and deployment, autonomous vehicles, or an applied product team. The technical emphasis shifts substantially.
- Coding round — C++ or Python at roughly LeetCode medium, often with memory behaviour or data layout as part of the discussion.
- ML and deep learning fundamentals — derivations rather than definitions.
- GPU and systems round — the distinguishing round. Memory hierarchy, parallelism, precision, profiling.
- Applied optimisation — a practical problem: this model is slow, what do you do.
- Team fit and depth — a walkthrough of something you personally built.
Our Nvidia interview questions guide covers the company-wide process.
GPU fundamentals: the round that decides it
You do not need to have written production CUDA kernels for most roles. You do need to understand what the hardware is doing.
- Memory hierarchy. Registers, shared memory, L2, global memory — and roughly the order-of-magnitude difference between them. Almost every optimisation question reduces to moving data less far.
- Memory-bound versus compute-bound. The single most important distinction in the entire loop. An elementwise operation is memory-bound; a large matrix multiplication is compute-bound. Knowing which one you are looking at determines what optimisation is even worth attempting. Being able to reason about arithmetic intensity — operations performed per byte moved — is what a strong answer sounds like.
- Kernel fusion. Why chaining several elementwise operations is wasteful, and why fusing them into one pass is often the largest available win. This is the most commonly asked practical optimisation.
- Occupancy and parallelism. Threads, warps, blocks; why a warp diverging on a branch costs you; why occupancy is a means rather than a goal.
- Precision. FP32 versus FP16 versus BF16 versus FP8 and quantised integer formats. What mixed precision actually does, why loss scaling exists, and where numerical stability breaks. Expect real depth here.
- Batching. Why larger batches improve throughput and hurt latency, and what dynamic or continuous batching does for inference serving.
- Profiling before optimising. Say this unprompted. The correct first answer to "make this faster" is always "measure where the time goes", and candidates who begin proposing optimisations without it lose the round quietly.
ML fundamentals, at derivation depth
- Backpropagation, derived rather than described, including why memory during training scales with activations and what gradient checkpointing trades away.
- Attention. The complexity in sequence length, why the naive implementation is memory-bound, and the idea behind fused attention implementations that avoid materialising the full matrix. This is asked constantly in 2026.
- Normalisation layers — what they stabilise, and where they sit in the cost profile.
- Numerical stability — why softmax subtracts the max, where FP16 overflows, and what that means in practice.
- Optimisers — momentum and adaptive methods, and their memory cost per parameter, which matters enormously at scale.
- Distributed training — data parallel versus tensor parallel versus pipeline parallel, what each communicates and when, and why the interconnect becomes the bottleneck.
Our deep learning interview questions and PyTorch interview questions guides cover the framework layer.
The applied optimisation question
You will get some version of "this model runs at X, we need Y — what do you do?" Answer as a method, not a list:
- Profile first, and say what tool and what you would look at. Where is the time actually going: kernels, data loading, host-device transfer, synchronisation?
- Check the obvious pathologies — data loading starving the GPU, unnecessary host-device copies, synchronisation points forcing serialisation, tiny batches leaving the device idle.
- Classify the bottleneck. Memory-bound or compute-bound. Everything downstream depends on this.
- Then the toolkit, matched to the bottleneck: fusion and better data layout for memory-bound; lower precision, better kernels or improved utilisation for compute-bound.
- Consider the model itself — quantisation, distillation, pruning, or a smaller architecture — and be honest that these trade accuracy, which needs an evaluation set to measure.
- Say what you would not do. Micro-optimising a kernel that accounts for 3% of runtime is a real answer and it demonstrates judgment.
Coding
C++ for most systems and framework roles, Python for applied and research-adjacent ones. Ask the recruiter which.
The problems sit around LeetCode medium, and the follow-ups go towards memory rather than towards a harder algorithm: what does this allocate, what is the cache behaviour, how would you lay this data out, can this be parallelised. If the role is C++, expect real language depth — move semantics, RAII, templates, and where undefined behaviour hides. Our C++ interview questions guide covers it.
What to prepare, in order
- Weeks 1-2 — GPU fundamentals: memory hierarchy, arithmetic intensity, occupancy, fusion, precision formats. Explain each in ninety seconds without notes.
- Week 3 — profile something real. Take a model, profile it, find the bottleneck, fix one thing, measure again. This single exercise answers the applied round better than any reading.
- Week 4 — ML derivations: backprop and memory, attention complexity, mixed precision and loss scaling, distributed training strategies.
- Final week — your own depth story, plus coding practice in the right language with memory follow-ups spoken aloud.
Where each option actually helps
- The CUDA programming guide and Nvidia's own technical blog — the primary sources, and unusually good. Their posts on mixed precision and on fused attention are close to an answer key.
- Profiling tools — Nsight Systems and Nsight Compute. Even shallow familiarity changes how you answer the applied question, because you can name what you would look at.
- The FlashAttention paper, or a solid explainer — the canonical worked example of turning a memory-bound operation into a fused one, and it comes up.
- LeetCode — medium, in the language the role uses.
- ChatGPT — good at explaining GPU concepts and generating practice questions. It will not tell you whether your operation is memory-bound in practice — a profiler will.
- Greenroom — the spoken layer. Ari, the AI interviewer runs the depth and optimisation rounds out loud and asks the follow-up, which is where explanations that work on paper fall apart. Honest tradeoff: Ari will not profile your model, and this loop genuinely requires that you have.
Comparing loops? The Google ML engineer guide and Meta ML engineer guide cover product ML, which is a substantially different interview from this one.
Frequently asked questions
How is an Nvidia ML interview different from other ML interviews?
It is a performance engineering interview that happens to be about neural networks. There is no feed to rank, no A/B test to design and no feature store — the work is making models run faster on the hardware, so the loop weights GPU fundamentals, memory behaviour, precision and profiling far above product ML topics. Candidates arriving with a recommendation-systems playbook typically prepare thoroughly for the wrong round.
What GPU knowledge do you need for an Nvidia ML interview?
Understand the memory hierarchy from registers and shared memory through L2 to global memory and the order-of-magnitude costs between them, the distinction between memory-bound and compute-bound operations and how to reason about arithmetic intensity, kernel fusion and why chaining elementwise operations wastes bandwidth, occupancy and warp divergence, precision formats including FP16, BF16, FP8 and mixed precision with loss scaling, and batching tradeoffs between throughput and latency. Writing production CUDA kernels is not required for most roles.
What is the difference between memory-bound and compute-bound?
A memory-bound operation is limited by how fast data can be moved rather than by arithmetic — elementwise operations are the classic example. A compute-bound operation is limited by arithmetic throughput, such as a large matrix multiplication. The distinction determines which optimisations are even worth attempting: fusion and better data layout help memory-bound work, while lower precision and better kernel utilisation help compute-bound work. Classifying the bottleneck before proposing fixes is what separates strong answers.
How do you answer make this model faster in an interview?
Answer as a method rather than a list. Profile first and name the tool and what you would look at, check the common pathologies such as data loading starving the GPU, unnecessary host-device copies and synchronisation points, then classify the bottleneck as memory-bound or compute-bound because everything downstream depends on it. Apply the matching toolkit, consider model-level changes like quantisation or distillation while acknowledging they trade accuracy, and say what you would deliberately not optimise.
Does Nvidia ask C++ in ML engineer interviews?
For systems, framework and inference roles, usually yes, with genuine language depth including move semantics, RAII, templates and where undefined behaviour hides. Applied and research-adjacent roles are more often Python. Ask the recruiter which language the round uses. In either case the coding problems sit around LeetCode medium and the follow-ups head towards memory behaviour, data layout and parallelisation rather than towards a harder algorithm.
What deep learning theory does Nvidia ask about?
Derivation-level rather than definitions: backpropagation including why training memory scales with activations and what gradient checkpointing trades, attention complexity in sequence length and why the naive implementation is memory-bound, the idea behind fused attention implementations that avoid materialising the full matrix, numerical stability such as why softmax subtracts the max and where FP16 overflows, optimiser memory cost per parameter, and distributed training strategies with what each one communicates.