A Phoronix Test Suite GPU benchmark gives you a measurement of one program, at the settings its test profile fixed, on one machine. For AI hardware decisions, that is both what makes it useful and where it stops. A speedup measured with the compiler and batch size held fixed can evaporate in production when the compiler version, batch size or native low-precision support differs. Throughput under static batching with batch size 32 is a fundamentally different quantity from throughput under continuous batching, even with the same model binary on the same GPU. Treat the score as a measurement with a declared scope. It is not a forecast of your serving stack.
What a GPU test profile pins down
The Phoronix Test Suite is an open-source framework that installs and runs test profiles and records their results. Each result describes the program the profile wraps, run at the settings the profile chose. If you want to know which AI-related profiles are worth running and where the suite fits in a wider evaluation, that is covered in Phoronix Test Suite for AI benchmarking: use cases and limitations. This page is about reading a GPU result once you have one.
Benchmarks earn their keep by keeping the essential characteristics of a workload and dropping the rest of the application: the libraries, the data pipeline, the orchestration. The Mystique authors (2023) also point out that production models often carry adaptations on top of their open-source versions, and that these adaptations can give them very different performance characteristics. So for any synthetic GPU result, the real question is whether what got dropped matters for your workload.
The same two accelerators trade places as the workload changes
The test mix can flip a hardware ranking. In the LynxBenchAI 26Q3 results, the AMD Instinct MI300X scores 1023.3 in Compute against 487.1 for the NVIDIA H100 80GB HBM3, while the H100 scores higher in Inference, at 1678.1 against 1304.0. Training is close: 727.2 for the MI300X and 709.3 for the H100.
The individual tests spread further. On MobileNetV3 fp16 inference the H100 scores 2833.0 and the MI300X 733.8. On fp32 sparse matrix multiplication the MI300X scores 1323.0 and the H100 161.0. A suite that ran only one of those two tests would put the two accelerators in opposite order, depending on which test it ran.
The MLPerf Inference authors (Reddi et al., 2019) found that SSD-ResNet-34 needs 175 times more operations per image than SSD-MobileNet-v1 but runs only 50 to 60 times slower. LLM-Inference-Bench (2024) measured LLaMA-3-70B throughput rising 39 times on an H100 as the batch size grew from 1 to 64, compared with 3 times on an A100. A benchmark run at one fixed workload size can therefore flatter one device class. LynxBenchAI is designed to remove that specific bias, as described below.
Single-stream timing leaves out the queue
MLPerf Inference defines four scenarios (single-stream, multistream, server and offline) because performance can vary drastically between them. Translation and image tagging see arrival patterns that follow end-user traffic, so batching optimisations that work offline may not apply, and timing on-device latency alone does not reflect what the deployment requires. MLPerf found that the server scenario’s latency constraint and non-uniform arrivals cost some systems as little as 3% of their offline throughput and others 50%. Optimizing AI Inference Across the Deployment Stack (2026) gives the example of a system doing 10,000 requests per second offline that may sustain only 3,000 online under a 50 ms p99 SLA.
The gap is governed by queuing dynamics, and it is non-linear. Under the M/M/1 model that survey uses, mean response time is twice the model’s service time at 50% utilisation, ten times at 90% and twenty times at 95%. In the same survey’s terms, near saturation a 5% cut in admitted request rate can reduce p99 latency by 30% or more, and at 90% utilisation a 1 ms reduction in service time yields a 100 ms reduction in mean response time. Real LLM serving traffic also arrives in bursts. In the BurstGPT study (2024), Azure OpenAI traces with the same requests per second as a more uniform trace produced higher latency and put more pressure on KV cache management. A benchmark that times one stream at a time does not show any of this. How batching, concurrency and saturation change what you observe is covered in depth in our piece on GPU utilisation in AI benchmark testing.
Can a Phoronix Test Suite GPU benchmark tell me how my model will run?
Not directly. It tells you how the profile’s workload ran, and it becomes a good proxy for your model only to the extent that its model type, precision, batching and software stack resemble yours. Realism comes in degrees, and synthetic benchmarks built to reproduce specific workloads have tracked them closely. Mystique, which replays execution traces, reproduced the overall performance of four workloads with 2.5% to 9.8% error. Meta-Metrics and Best Practices for System-Level Inference Performance Benchmarking (2025) found synthetic inputs within a 2.37% geomean throughput difference of real inputs across its parameter space. Both are synthetic, but both were built to reproduce specific workloads.
Deployment benchmark results are perishable. A TensorRT update, a new CUDA toolkit or a vLLM release can shift framework rankings by 10–30%, according to the same deployment-stack survey. A Phoronix result from last year’s driver stack describes last year’s driver stack.
Reading a Phoronix Test Suite GPU benchmark as an AI number: a checklist
Before carrying any published GPU score into an AI decision, check what it fixed. Our wider guide to measuring GPU benchmarks for AI covers the metrics themselves.
| Check | Why it changes the reading |
|---|---|
| Which latency is reported: kernel, model, request or service time | These four can differ by an order of magnitude for the same model on the same hardware. |
| Batch semantics: static batch of 1, dynamic or continuous batching, offline or online | Throughput under different batching strategies is a different quantity, not a variant of the same one. |
| Precision, and whether the hardware runs it natively | Without native low-precision units, quantised tensors are upcast and the throughput gain collapses to the memory saving. |
| Framework, driver and CUDA toolkit versions | Deployment measurements are sensitive to driver version, toolkit version and even run order. |
| Mean only, or a distribution (p50, p90, p99) | Summary statistics hide trade-offs that only show up across several percentiles. |
| Run length and warm-up | The MLPerf Inference paper requires at least 60 seconds per run to capture the equilibrium behaviour of power management and DVFS. |
| One card, or many of the same SKU | Identical-SKU GPUs varied by 8% on average (up to 22%), with outliers 1.5 times slower than the median, in an SC22 study of five clusters. |
| Equal tuning effort for every system compared | Tuning one system and running baselines on defaults invalidates the comparison. |
A row you cannot answer from the published result is not a reason to throw the number away. It marks part of the conclusion that you still have to supply yourself.
How LynxBenchAI declares what its number covers
LynxBenchAI is a synthetic benchmark too, and it answers the same checklist by stating its bounds rather than leaving them implied. A score reflects the fixed model catalogue of one named release, measured inside one continuous timed window after a discarded warm-up. It is not a median of repeated trials, and it does not describe the reader’s own application. The window is a declared measurement interval. It makes no claim about the machine’s thermal or clock condition inside it.
Calibration then raises the batch size until throughput stops improving within a noise band, so a laptop GPU and a data-centre accelerator are each measured at their own plateau rather than at one fixed size that flatters one of them. Models are prepared once, before any target device is known, and the stricter constraint is applied to every vendor. A workload that fails or times out is recorded as a zero, not dropped.
The 26Q3 data shows what those rules expose. On the NVIDIA GeForce RTX 3080 and the NVIDIA A100-SXM4-80GB, every fp8 inference test scores 0.0, meaning that precision produced no result on those executors. The same RTX 3080 scores 240.5 in Inference on native Linux and 231.7 under WSL, but 64.8 against 72.5 in Compute. Scores compare only within the 26Q3 release, and GT is an ordinal aggregate over Training, Inference and Compute, not a percentage or a 0–100 rating.
A LynxBenchAI result covers the fixed model catalogue of one release. It does not run or measure your workload. MLPerf accepts any implementation mathematically equivalent to the reference, so submitted results require optimisations to perform well.
Running the real software remains the reference standard. Estimating from the specification sheet is the fallback when you cannot.
LynxBenchAI’s Personal Edition installs in 15–30 minutes and shows what the instrument covers on the machine you already have; the LynxBenchAI page describes what it measures.
The part no published GPU score closes
Even after you have checked every row of the table, the concurrency, queuing and request mix of your own service are still unmeasured. No Phoronix profile, MLPerf scenario or LynxBenchAI release closes that gap for you. The BurstGPT authors found that even with real-world traces, an optimisation tuned on one workload does not necessarily carry over to another. A practical next step is a measurement built on your own traffic. Our practical protocol for benchmarking a PC for AI covers the machine-level side, and a task-specific LLM evaluation that survives a procurement review covers the model-level side. When the gap shows up on a production system, profiling AI inference is where workload shape stops being an abstraction. Testing against the workload you ship is the job of AI model regression suites, and making it faster on the target hardware is GPU performance engineering work.