Skip to content
RED SAGSkills
hardMachine Learning Engineer interview question

Scaling training from 8 to 64 GPUs gave only a 3x speed-up. How do you find and fix the bottleneck?

What the interviewer wants to hear

  • Profile compute, communication and data loading separately
  • Check the data pipeline keeps GPUs fed
  • Look at all-reduce or all-gather time and network bandwidth
  • Overlap communication with compute and increase work per step
  • Watch for stragglers, load imbalance and small per-GPU batches

Model answer

First I measure instead of guessing. I profile a few steps on 8 and 64 GPUs and break step time into data loading, forward and backward compute, and communication. If GPU utilisation is low and there are gaps before each step, the data loader is the bottleneck, and I add workers, prefetching or faster storage. If communication dominates, I look at gradient all-reduce or FSDP all-gather time. Across nodes the network is much slower than within a node, so I check interconnect bandwidth, make sure communication overlaps with backward compute, use bucketed gradients, and increase work per step through larger per-GPU batches or gradient accumulation. I also look for stragglers: one slow node or uneven sequence lengths make everyone wait. After each change I re-measure scaling efficiency and keep the learning rate tuned for the new global batch.

Can you answer it under time pressure?

Take a timed hard round and get scored on every answer.

Start mock interview

More hard Machine Learning Engineer questions