“Same chip class” is not the right starting frame A team comparing AI hardware options often starts with the assumption that an accelerator is an accelerator: that the GPU or specialized device that performs well on training will perform proportionally well on inference, and that the metric to optimise is “TFLOPS for AI.” That frame conceals the architectural divergence that has produced a distinct category of inference accelerators — devices designed around the access pattern, precision regime, and latency/throughput trade-off that inference workloads actually exhibit, not the ones training workloads exhibit. Inference accelerators exist as a distinct category because the workload they target is fundamentally different from training, and the design decisions that optimise for one degrade performance or cost-efficiency on the other. In our experience benchmarking GPU-class hardware for deployed inference, treating training-oriented devices and inference-oriented devices as interchangeable produces numbers that are uninformative for both decisions. What does an inference accelerator optimise for? Inference is the forward pass of a trained model, applied to new inputs at deployment time. The workload has properties that training does not: Single-batch or small-batch latency matters. Training tolerates large batches (the batch is the unit of optimisation). Inference often must respond per request, which means small effective batch sizes and per-request latency dominance. Memory traffic dominates compute. For most modern model architectures at inference time, the workload is memory-bound: the time to fetch weights and activations from memory dominates the time to perform the arithmetic on them. Training is more compute-bound because the optimiser step and the backward pass amortise memory access across more arithmetic operations. Lower precision is acceptable, and often required. Training generally needs higher-precision accumulation to keep gradients well-behaved (FP32, BF16, mixed-precision schemes). Inference can frequently use INT8, FP8, or other lower-precision formats without accuracy loss, which changes the hardware features the accelerator must provide. Energy per inference is the cost metric. Training cost is dominated by run-to-completion energy on a fixed dataset. Inference cost is dominated by per-query energy at deployment scale, which makes energy-per-operation a primary design constraint. Model weights are static at deployment. Training updates weights every step. Inference loads weights once and uses them for many requests, which permits architectural choices (weight stationarity, on-chip storage) that don’t apply to training. These properties produce different design pressures on the silicon, the memory subsystem, and the software stack. How does inference hardware differ from training hardware architecturally? Dimension Training-oriented hardware Inference-oriented hardware Precision focus FP32, BF16, mixed-precision; high-bit accumulation INT8, FP8, FP16; sometimes INT4 / sub-byte formats Memory subsystem High bandwidth (HBM common); large capacity to hold optimiser states + gradients + activations Bandwidth-optimised but often smaller capacity; sometimes on-chip weight storage Interconnect High-bandwidth multi-device interconnect (training scales to many accelerators) Per-device or limited interconnect; inference often runs on a single device per replica Compute precision mix Tensor cores supporting the full set of training-relevant precisions Tensor cores or specialised matrix engines tuned for inference precisions Power envelope Higher absolute power; performance-per-watt secondary to throughput Often optimised for performance-per-watt at the deployment power envelope Software stack focus Framework-side training APIs, distributed training primitives (NCCL all-reduce, ZeRO sharding) Inference runtimes (TensorRT, OpenVINO, ONNX Runtime, vendor-specific); model compilation pipelines The columns are not strictly disjoint — a high-end training accelerator can perform inference, and a specialised inference accelerator can sometimes train smaller models — but the design centres are different, and the benchmarks that exercise each produce different rankings of the same set of devices. This is an observed pattern across the deployment work we see, not a vendor-supplied claim. Why inference accelerators benchmark differently The fact that training and inference are different workloads means that the benchmarks that meaningfully evaluate them are different benchmarks. A training benchmark exercises the optimiser step, gradient accumulation, distributed all-reduce, and high-precision matrix multiplication on large batches. An inference benchmark exercises forward-pass latency, low-precision matrix multiplication on small batches, KV-cache management for autoregressive models, request-level scheduling, and energy-per-query. These are different code paths that exercise different hardware features. Reporting a single “AI performance” number that purports to characterise a device for both workloads is methodologically uninformative. The device may be excellent for training and indifferent for inference (because its low-precision matrix engines or per-request latency profile are not the design centre), or excellent for inference and inadequate for training (because its memory capacity or interconnect cannot hold or coordinate the training state). A workload-faithful benchmark for inference reports per-precision throughput at realistic batch sizes for the deployment scenario, per-request latency at target throughput, and energy-per-inference at the operating point — and discloses the inference runtime, model compilation toolchain, and quantisation configuration that produced those numbers. A training-style benchmark transposed onto an inference accelerator produces a number that does not predict deployment behaviour. What this means for evaluating an inference accelerator A team evaluating an inference accelerator should treat it as a distinct device category and apply benchmarks designed for the inference workload — not training-style throughput numbers extrapolated to inference. The dimensions to capture in the executor specification include the inference runtime version (TensorRT, ONNX Runtime, vLLM, OpenVINO), the model compilation toolchain (and its version), the precision regime the model was compiled to, the batch size and sequence-length profile of the benchmark workload, and the latency/throughput operating point being measured. A benchmark that captures these dimensions characterises the inference executor. A benchmark that omits them characterises a vendor-supplied number whose generalisation to the team’s actual deployment is unknowable. For the wider workload-level argument — why training and inference diverge architecturally in the first place — the deeper treatment sits with the parent piece on optimising AI inference latency on GPU infrastructure. The practical content here is the corollary: the workload distinction is what produces the distinct hardware category, and the distinct hardware category requires a distinct benchmark methodology. The framing that helps Inference accelerators are a distinct category because inference is a distinct workload — different precision regime, different memory access pattern, different latency profile, different cost metric. Training-style benchmarks misrepresent inference accelerators. Inference benchmarks must use inference workloads and disclose the inference-runtime + compilation-toolchain + precision-regime stack that actually executed. We treat the inference runtime, model compilation toolchain, precision regime, and operating-point batch/latency profile as part of the AI Executor specification — alongside the accelerator hardware — because the inference workload’s distinct architecture demands a benchmark methodology that the executor specification has to support. FAQ How do I diagnose where AI inference latency is being spent — model compute, memory, batching, or transport? Profile the forward pass against four counters: arithmetic intensity on the matrix engines, memory bandwidth consumed by weight and activation fetch, batching efficiency at the runtime layer, and host-device transfer time at the request boundary. For most modern architectures at inference time the workload is memory-bound, so the time to move weights and activations dominates the time to multiply them — that is where to look first. What is the most efficient GPU infrastructure for low-latency inference today? There is no single answer detached from the precision regime, batch profile, and SLA target. An inference-oriented device — bandwidth-optimised memory, INT8/FP8 matrix engines, optimised for performance-per-watt at the deployment envelope — will generally beat a training-oriented device on cost-per-inference at small batch sizes, but the comparison only holds once the inference runtime, compilation toolchain, and quantisation configuration are pinned. When does FP8 / INT8 quantisation actually reduce serving latency, and when does it only save memory? Quantisation reduces latency when the workload is bound by the matrix engines and the accelerator has dedicated low-precision tensor cores or matrix engines whose throughput is higher at the lower precision. When the workload is bound by memory bandwidth or by KV-cache traffic, quantisation reduces memory footprint and bandwidth pressure — which can reduce latency indirectly — but the speedup is not the precision ratio you would naively expect. How do batching strategies (continuous, dynamic, static) trade throughput against tail latency? Static batching maximises throughput at the cost of head-of-line blocking on the slowest request in the batch. Dynamic batching trades a bounded queueing delay for higher utilisation. Continuous batching (relevant to autoregressive LLM serving) lets new requests join an in-flight batch at token boundaries, which keeps the accelerator busy without paying the static-batch tail-latency penalty. The right choice is set by the SLA on p99 latency, not the average. When should I optimise the inference path rather than scale out to more GPUs? Scale out when the bottleneck is aggregate throughput and the per-request latency is already inside SLA. Optimise the path when per-request latency is the constraint, or when utilisation on the existing fleet is low — adding GPUs to a memory-bound or batch-inefficient pipeline buys very little, and the optimisation work is usually cheaper than the procurement. How do I measure cost-per-inference before and after optimisation to justify the engineering work? Capture latency at the target throughput, accelerator utilisation, and energy-per-inference at the operating point — all three, on the same workload, before any change. Repeat after each optimisation step (precision change, batching strategy, runtime swap, kernel tuning). Cost-per-inference is the composite of energy-per-inference and amortised hardware cost at the achieved throughput; both halves need the same workload definition to be comparable.