-
Notifications
You must be signed in to change notification settings - Fork 0
Inference Software
The Inference Software team owns everything between a trained model and the hardware executing it. The job is to take a model expressed in a training framework and turn it into an efficient, numerically correct execution on the target accelerator — then keep it fast as models, workloads, and hardware change.
- Model Frontend
- Graph Compiler
- Quantization
- Kernel Library
- Memory Management
- Batching and Scheduling
- Runtime
- Performance Optimization
- Execute models correctly, within an agreed numerical tolerance
- Maximize throughput and minimize latency on the target hardware
- Use memory bandwidth and capacity efficiently
- Keep the stack maintainable as new models and operators appear
- Give hardware and architecture teams actionable performance feedback
Trained model (PyTorch / ONNX / SafeTensors)
↓
Model Frontend — import, trace, normalize to an IR
↓
Graph Compiler — fuse, tile, lay out, lower to hardware ops
↓
Quantization — reduce precision, calibrate, verify accuracy
↓
Kernel Library — the actual compute implementations
↓
Memory Management — weights, activations, KV cache allocation
↓
Batching and Scheduling — decide what runs when
↓
Runtime — execute on device, manage state
↓
Performance Optimization — measure, find bottleneck, iterate
The flow is a pipeline in structure but a loop in practice: performance findings feed back into compiler decisions, quantization choices, and sometimes the hardware architecture itself.
Serving a large language model splits into two phases with completely different characteristics:
| Phase | Processes | Bound by | Arithmetic intensity |
|---|---|---|---|
| Prefill | The whole input prompt at once | Compute | High — large matrix-matrix work |
| Decode | One token at a time, autoregressively | Memory bandwidth | Low — matrix-vector work |
This split drives nearly every design decision in the stack. Decode reads the entire weight set and the growing KV cache to produce a single token, so it is starved for bandwidth rather than arithmetic. Techniques that help prefill often do nothing for decode, and vice versa.
Most of the difficulty — and most of the opportunity — lives in decode.
| Team | Interface |
|---|---|
| Architecture | Instruction set, memory hierarchy, what the hardware can express |
| RTL | Behavior of each hardware block the compiler targets |
| Verification | Reference models and numerical parity checks |
| Physical Design | Achievable frequency and power, which set realistic performance targets |
See also: Architecture · RTL · Verification · Physical Design