AI Infra Interviews logo
🖧 Hardware & Cluster Build-Out
Foundational

Burn-In and Acceptance Testing

New hardware fails early or it fails late, and burn-in exists to move the early failures before the cluster is handed over rather than after. A proper acceptance test runs every layer under sustained load for days, compares every node against its siblings rather than against a specification, and produces a signed number the buyer and the vendor both agree on. The comparison is the important part: identical hardware running identical work should produce identical numbers, and the outliers are the finding.

TL;DR: Run the cluster hard for days before accepting it, and judge nodes against each other rather than against a datasheet. Failure rates over a component's life follow a bathtub: a raised rate early from manufacturing and handling defects, a low flat middle, a rising end from wear. Burn-in is the deliberate consumption of the early part on the vendor's account rather than on a training run's. The tests that matter run at four levels: per-GPU stress with the vendor diagnostic, per-node collectives, per-rail fabric bandwidth, and a full-scale sustained job with thermal and power at steady state. Acceptance criteria are written before the test, expressed as numbers with tolerances, and include an explicit outlier rule, because on 512 supposedly identical GPUs the useful finding is almost never a hard failure. It is the four GPUs running 6 percent slower than the other 508.

The bathtub, and what burn-in buys

failure rate over a component's life
  early    raised, from manufacturing defects, shipping damage, bad seating, marginal solder
  middle   low and roughly constant; the corpus anchor is about 2 x 10^-5 per GPU-hour
  late     rising, from wear: thermal cycling, HBM degradation, fan and pump wear

what a 72-hour burn-in on 512 GPUs consumes
  GPU-hours = 512 x 72 = 36,864
  at the steady-state rate that predicts 36,864 x 2e-5 = 0.7 failures
  observed counts during burn-in are routinely several times that, and the excess is exactly
    the infant mortality being drained
sanity: if burn-in finds roughly the steady-state number and no more, either the batch is
        unusually good or the test is not stressing the parts, and the second is more likely

Training Uptime and Interruption Statistics has the steady-state figure and where it comes from. The burn-in argument is that the same failures cost far more later: a defect found on day 3 is a vendor replacement, and the same defect found on day 40 is a training run losing work and an on-call engineer at 2 a.m.

The four levels, and what each catches

LevelTestWhat it catches
Per GPUVendor diagnostics at the deepest level, plus a memory stress passHBM errors, marginal parts, cards that throttle early
Per nodeSingle-node all-reduce over 8 GPUs; a dense compute loop at sustained powerNVLink faults, a fabric manager problem, one weak GPU in a node
Per railPairwise bandwidth on each of the 8 rails, node to nodeMiscabling, a bad transceiver, a rail wired to the wrong leaf
Full scaleA real training job at full size for 48 to 72 hoursThermal and power at steady state, fabric congestion, anything that only appears hot
rendering diagram…

Compare against siblings, not against the datasheet

This is the technique that separates a real acceptance test from a checklist. The datasheet gives an upper bound that nothing quite reaches, so "within spec" is a weak claim. Identical parts running identical work, on the other hand, should agree closely, and the spread is informative.

example: single-node all-reduce bus bandwidth across 64 nodes
  median across nodes:              a number, whatever it is
  acceptance rule:                  every node within 3% of the median
  what an outlier means
    one node 6% low       usually one weak NVLink or one GPU clocking lower
    four nodes 6% low     often a rack: check the cooling and the power feed for that rack
    one rail 15% low      cabling, a transceiver, or the wrong leaf
  the same rule applied to
    GPU clock under sustained load, per GPU
    power draw at a fixed workload, per GPU
    HBM temperature at steady state, per GPU
    step time in the full-scale job, per rank
sanity: on 512 identical GPUs the spread should be small, so a distribution with a tail is
        a finding even when every part is inside its specification, and it is a finding you
        can only make by comparing parts to each other

Writing acceptance criteria that mean something

  • Numbers with tolerances, agreed before the test. "Bus bandwidth per node within 3 percent of the fleet median" is testable; "performs as expected" is not.
  • A duration. Thermal problems need hours at steady state, and a 20-minute test finds none of them.
  • An outlier clause, so a fleet that passes on averages and has a tail is not accepted.
  • A defect budget. Some early failures are normal; agree in advance how many replacements are covered and how quickly, rather than negotiating it while the cluster is half-broken.
  • The environment recorded. Inlet water temperature, hall temperature and power feed configuration, because a test passed in winter with the doors open is not a test.

ECC, Row Remapping and Memory Errors covers the memory-specific criteria, which deserve their own line: a part that has already consumed a large share of its remapping capacity during burn-in should be replaced rather than accepted, even though it currently works.

What interviewers are listening for

The sibling comparison, above everything else. A candidate who says "we ran the vendor diagnostics and everything passed" has described a checklist. A candidate who says "we compared per-node bus bandwidth against the fleet median and rejected anything more than 3 percent off, which found four nodes in one rack that turned out to share a cooling problem" has described an acceptance test. The second signal is duration and thermal steady state. The third is knowing why burn-in exists at all, which is the bathtub curve and moving the early failures onto the vendor's account.

Key takeaways

  • Burn-in exists to consume infant mortality before handover; the steady-state rate of about 2 x 10^-5 per GPU-hour predicts 0.7 failures in a 72-hour run on 512 GPUs, and finding several times that is normal and is the point.
  • Four levels: per GPU diagnostics, per node collectives, per rail bandwidth, then 48 to 72 hours at full scale.
  • Judge nodes against the fleet median rather than the datasheet, with a stated tolerance such as 3 percent.
  • Write acceptance criteria as numbers with tolerances, a duration, an outlier clause, a defect budget and a recorded environment.
  • A part that has consumed much of its row-remapping capacity during burn-in should be replaced even though it currently works.
RELATED CONCEPTS
LESSONS THAT TEACH THIS
PRACTICE THIS IN REAL QUESTIONS