AI Infra Interviews logo
Behavioral & Ownership / 07
easyNewNVIDIAFireworks AITogether AI

Tell me about a performance win you are proud of. How did you measure it?

A speedup number with no method behind it is worth nothing, and experienced interviewers stop listening at the number and start asking about the baseline. What makes a performance claim survive scrutiny, and the four ways a real one turns out to be smaller than it looked.

Updated Sep 2026 · Grounded in real AI infrastructure interview loops and written to a senior-engineer editorial bar, with every number worked and every diagram hand-built.

TL;DR: The number is the least interesting part and the interviewer knows it. What they are testing is whether you can defend a performance claim, which means four things. A baseline that was warm, correctly configured and running the same work, because most large speedups turn out to be against something misconfigured. A method: how you timed it, how many runs, what you reported, and whether the variance was small enough for the difference to mean anything. A ceiling: what the theoretical limit was, so the interviewer knows whether 2x was most of what was available or a tenth of it. And the scope of what changed, meaning whether the win survived contact with production traffic or only held for the shape you measured. Lead with the mechanism rather than the number. "The kernel was memory-bound at 12% of peak bandwidth, and fusing the three elementwise passes removed two round trips to HBM" is a claim someone can check, and "we got a 3x speedup" is not.

How to approach it

Say what was slow and how you knew, which is usually a profile rather than a complaint. Then the mechanism you found, stated in terms of the resource that was saturated. Then the change. Then the measurement, including the baseline and how you made it fair. Then the number, and then immediately what it does not include. Ending on the caveat rather than the number is a deliberate move and it reads as confidence.

A strong answer

A typical situation: an engineer speeds up an inference path and reports 3.1x. The interviewer asks what the baseline was doing, and it turns out the baseline was running without a warmup, so the first iterations included compilation. The real number was 1.4x. The engineer is not dishonest and the number was still worth having, but the story now has to be rebuilt in the interview, which is the worst place to discover the problem.

What makes a claim survive, in the order to say it:

ElementWeakStrong
Diagnosis"It was slow.""Nsight showed 12% of peak DRAM bandwidth with high L2 traffic, so it was fetching bytes it did not use."
Mechanism"I optimized the kernel.""Three elementwise ops were separate kernels, each reading and writing the full tensor. Fusing them removed two HBM round trips."
Baseline"Compared to before.""Same input distribution, warmed up, clocks recorded, best-of-median over 50 runs, same dtype."
Number"3x faster.""1.9x on the fused path, median 2.4 ms to 1.26 ms, interquartile range under 3%."
CeilingNot mentioned."The roofline says this shape is memory-bound at about 295 FLOP per byte on H100, so the remaining headroom is the one unavoidable read."
ScopeNot mentioned."It holds for sequence lengths above 512. Below that the launch overhead dominates and the win is under 10%."

Profiling with Nsight covers the diagnosis half and which counter answers which question. Roofline Model covers the ceiling, and having a ceiling in your answer is the single fastest way to signal that you optimized deliberately rather than by trying things. Kernel Fusion covers the specific mechanism in the example above, and the general point holds regardless of which mechanism your story uses.

The four ways a real win shrinks under questioning, all of which are better to raise yourself:

1. the baseline was not warm
   compilation, autotuning, cache population and clock ramp all land in the first
   iterations. A cold baseline against a warm candidate inflates everything

2. the inputs were cache-resident
   a benchmark that reuses one tensor measures L2, not the memory system the production
   path uses. Flushing between iterations changes the number, sometimes by a lot

3. the shape was favorable
   a fast path that handles powers of two and falls back otherwise looks excellent on a
   benchmark of powers of two. Report the production shape distribution

4. the win did not reach the user
   a kernel 3x faster inside a step that is 8% kernel time moves the step by 5%. Say what
   fraction of end-to-end time the thing you optimized occupied before you touched it

That fourth one is where most interview answers fall apart, and it is worth preparing explicitly. Amdahl's argument is simple arithmetic and interviewers apply it immediately: if the optimized part was 8% of the total and you made it 3x faster, the whole is 5.3% faster, which is a real result and a very different claim.

WHAT A PERFORMANCE CLAIM NEEDS 3x the number where people stop baseline, locked clocks, alternated runs, a distribution the method where they start Say what it cost. Every win takes something, and volunteering that is the strongest signal available. A 22% win from a launch bound is a better story than a 10x from a rewrite.

The reversal condition: a win that does not show up end to end can still be the right work, and there is an honest version of that story. Removing a bottleneck that was about to bind, cutting memory so a larger batch fits, or making a path predictable rather than faster are all legitimate, and each is defended differently. What fails is presenting a local speedup as an end-to-end one and being caught by arithmetic the interviewer does in their head.

What interviewers probe next

  • "What was the baseline configured like?" The most common follow-up, and the one that ends weak stories. Know the flags, the warmup and the clocks.
  • "How much of the end-to-end time was this?" Have the fraction. Then the end-to-end effect follows in one line.
  • "What was the theoretical limit?" A roofline, a bandwidth number, or a serial fraction. Without one, you cannot say whether you finished.
  • "Did it regress anything?" Memory, compile time, numerical accuracy or a different shape. Every real optimization trades something, and naming it is more credible than a clean win.

Common mistakes

  • Leading with the number instead of the mechanism, which invites the interviewer to attack the number.
  • A baseline that was not warmed up, which is the single most common source of inflated speedups.
  • No ceiling, so there is no way to say whether the work was finished or barely started.
  • Quoting a local speedup as an end-to-end one, which the interviewer converts in their head.
  • Claiming no regressions, which is rarely true and is easy to test with one follow-up.

Key takeaways

  • Mechanism first, number last, caveat after the number.
  • A fair baseline is warm, correctly configured, same dtype, same input distribution, with variance reported.
  • Know the fraction of end-to-end time you optimized; a 3x on 8% of the total is 5.3% overall.
  • Bring a ceiling from a roofline or a bandwidth limit, so "how much is left" has an answer.
  • Raise the four shrinkage causes yourself: cold baseline, cache-resident inputs, favorable shapes, and local versus end-to-end.
That one was free — and so are 10 answers per topic without an account. Signing in doubles that to 20, opens the Plus lessons in the courses, and remembers which topics you keep getting wrong.no card · Google sign-in · nothing to cancel
HOW DID IT GO?
0
READING SIGNED OUT

Signing in doubles your free answers, from 10 to 20 per topic, and the site starts remembering you: mastery per topic, bookmarks, and a next-focus recommendation. Free, no card.

Sign in free

The concepts behind this question

Ranked by how closely each one overlaps this question's topic, so the first card is the thing to read if the answer above moved too fast.

Foundational
🧮 Open Weights & Serving Engines
Serving Benchmarks That Do Not LieMost published serving numbers are not comparable to each other and not predictive of production, because they differ in the input distribution, the concurrency, whether the cache was warm, and which of several very different metrics is being reported. A benchmark that supports a decision has to fix all four, report a distribution rather than a mean, and be run against the traffic shape you actually serve. The single most useful discipline is to compute the bandwidth bound first, so you know what fraction of the possible you achieved.
Foundational
🧩 GPU & Accelerator Architecture
Roofline ModelThe roofline plots a kernel's attainable throughput against its arithmetic intensity, FLOPs per byte moved from memory. Below the ridge point (peak FLOPS divided by memory bandwidth, about 295 on an H100 in bf16) a kernel is memory-bound and no amount of clever code reaches the peak; above it, compute is the limit. One picture explains why decode runs at under 1% of peak and why fusion and batching are the two levers that move it.
Foundational
💻 Coding for Infra
Cache-Friendly Data StructuresA cache line is 64 bytes and it is the unit of coherence, so where data sits decides how fast code runs more often than which algorithm it uses. Two consequences dominate infrastructure code: a lookup that chases a pointer pays two dependent memory stalls instead of one, and two threads updating adjacent variables contend for a line they do not logically share. Both are layout problems with layout fixes.
Core
🕸️ Distributed TrainingSign in
MFU and HFUModel FLOPs utilization is the fraction of a GPU's peak that goes into the model's own forward and backward math, computed from 6ND and the step time; hardware FLOPs utilization also counts recomputation. Production LLM training lands at 35 to 45% MFU, and knowing where the other 55% goes is the job.
UP NEXT ON YOUR JOURNEY
FEDITOR'S NOTE

Scored on the baseline being defensible, on the measurement method being stated before the number, and on the candidate knowing what their number does not include.

DISCUSSION · 0

No comments yet — be the first to share your approach.