Paper · 2025-09-24 · cs.LG, cs.DC
Energy Use of AI Inference, Efficiency Pathways, and Test-Time Scaling
Bottom-up Monte Carlo estimate of LLM inference energy per query from token throughput, node power, PUE and an efficiency multiplier. For large models on H100 nodes the median is 0.31 Wh per query, which the authors say is 4-20x below widely cited figures. Test-time scaling with 15x longer outputs raises it to 3.91 Wh. Line-of-sight optimisations give 8-20x reductions. Author-reported.
Test-time scalingLLM servingModel routinginferenceenergy-efficiencytest-time-scalingserving
AI-compiled by claude-haiku-5-5 on 2026-11-08, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
People quote very different numbers for how much electricity one chatbot answer uses. This paper builds an estimate from the bottom up: how fast a server full of AI chips can produce words, how much power that server draws, and how much extra power the data centre adds for cooling and overhead. Run over many random but realistic setups, it gives a typical answer around a third of a watt-hour for large models. Long, reasoning-heavy answers can cost more than ten times as much, so they dominate the total when they become common.
The paper then asks which improvements could cut the number: better models, smarter serving software, and newer hardware. Its estimate is that these together could reduce the energy per answer several-fold to around twenty times, and that sending easy questions to smaller models is one of the main levers. The results are the authors' own estimates, not measurements.
TL;DR
- Per-query energy is modelled as node power times time per query, divided by the efficiency gains, with PUE and a fixed constant for the unit conversion eq. 1.
- Median for models above 200B parameters on H100 nodes: 0.31 Wh per query (IQR 0.16-0.60) in the traditional regime fig. 2.
- Test-time scaling (median 5,000 output tokens): 3.91 Wh (IQR 2.15-7.05) fig. 2.
- Author-reported: line-of-sight improvements give 8-20x, and 10% long queries roughly double the daily energy of 1 billion queries fig. 3.
Problem
Public "energy per query" figures differ by more than an order of magnitude. The authors attribute this to differences in what is measured (GPU only or whole node), and to benchmarks that do not reflect batched, high-concurrency serving §1. Single "average query" figures also hide the effect of long outputs from reasoning models and agentic workflows §1. The paper's scope is steady-state, autoregressive text generation; diffusion image and video generation are excluded §4.
Method
Query definition. A query is one prompt-completion event with a single input and one generated output, served under steady state. Multi-step agentic workflows are out of scope and would be modelled as several queries, or as extra overhead that the model does not capture §2 §4.
Estimator. For a fixed GPU node, energy per query is computed from steady-state node power, the effective token length, the throughput at which the node emits tokens for the given input and output lengths, PUE, and an efficiency multiplier that is 1 in the baseline eq. 1 §2. The paper runs a Monte Carlo over 10,000 random draws of output length, node power and PUE for each model §2.
Throughput. Tokens per second for a saturated node come from published NVIDIA TensorRT-LLM benchmarks on H100 with FP8 and tensor parallelism 8 (10 for DeepSeek-R1) and continuous batching §2 [supp. S1]. A log-linear regression in input and output length is fitted to these points. Predictions are capped at the largest observed throughput, so the model is flat beyond the benchmarked range [supp. S2].
Regimes. Traditional queries use a median of 300 output tokens (IQR 129-618). Test-time-scaling queries use a median of 5,000 (IQR 2,040-9,717). Input length is fixed at 500 tokens in the main analysis §2 fig. 1.
Baseline and line-of-sight scenarios. The baseline blends models above 200B parameters, which the authors sample at alpha = 1 §2 fig. 2. Efficiency interventions are grouped into three categories. Each category has its own multiplier alpha, drawn from a log-normal distribution with the stated P5-P95 range. Categories are treated as independent and non-additive within the Monte Carlo, but a stacked, illustrative estimate multiplies them §3 fig. 2.
Datacenter scale. Energy for serving a number of queries is scaled by beta = 1.31, the product of a 1.10 networking factor, a 1.08 utilisation factor from a sinusoidal load between 50% and 100%, and a 1.10 node redundancy factor [supp. S5] §2.
Pseudocode for the per-query estimate:
# Energy per query on one fixed compute node [eq. 1] [§2]
# Input: p_node (kW), l_eff (tokens), tps (tokens/s), pue, alpha
# Output: Wh per query
def energy_per_query(p_node, l_eff, tps, pue, alpha):
# Node power times the time to emit l_eff tokens; 3.6 converts kW*s
# to Wh [eq. 1]
return (pue / 3.6) * (p_node * l_eff / tps) / alphaPseudocode for the throughput model:
# Throughput of a saturated node [supp. S2]
# Input: l_in, l_out (tokens); b0, b1, b2 (fitted, not stated); tps_max
# Output: tokens per second
def tps_model(l_in, l_out, tps_max):
# Log-linear fit of log(TPS) on log(input) and log(output) [supp. S2]
log_tps = b0 + b1 * log(l_in) + b2 * log(l_out)
# Cap at the largest benchmarked TPS; the decline in very long
# generations is not modelled [supp. S2]
return min(exp(log_tps), tps_max)Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| GPU node | 8x H100, FP8 (10x H100 for DeepSeek-R1) | §2 | DGX-style node §2 |
| Node peak power P_max | 10.2 kW (8 GPU), 12.5 kW (10 GPU), linearly scaled | §2 | Supp. S5 uses 11.3 kW; see Pitfalls |
| Node idle power | 2.7 kW | [supp. S4] [supp. S5] | Used in power-proportional variant |
| Node power P_node | log-normal, centre 0.7 * P_max, P5-P95 0.4 * P_max to 0.9 * P_max | §2 | Sampled per draw |
| PUE | log-normal, P5-P95 1.05 to 1.40 | §2 | Hyperscaler range cited §2 |
| Unit constant | 3.6 | eq. 1 | Converts kW*s to Wh |
| Efficiency multiplier alpha, baseline | 1 | §2 | |
| alpha, model | log-normal, P5 1.5, P95 10 | §3 | Distillation, quantisation, MoE, reasoning models |
| alpha, serving platform | log-normal, P5 1.5, P95 5 | §3 | Routing, disaggregation, KV cache, speculative decoding |
| alpha, hardware and datacentre | log-normal, P5 1.5, P95 2.5 | §3 | Blackwell, custom chips, cooling |
| alpha, datacentre scenario | 1.5 to 3 | §3 fig. 3 | "Conservative line-of-sight" |
| Input length L_in | 500 | §2 | Sensitivity at 1,000 and 5,000 in [supp. S3] |
| Output length L_out, traditional | exponential, median 300 (IQR 129-618) | §2 fig. 1 | Exponential rate not stated |
| Output length L_out, test-time scaling | exponential, median 5,000 (IQR 2,040-9,717) | §2 fig. 1 | |
| Effective length L_eff | equal to L_out in main analysis | §2 | Supp. S3 uses L_in + L_out |
| Monte Carlo draws | 10,000 | §2 | |
| TPS regression coefficients | not stated | [supp. S2] | Form given, values not |
| TPS cap | the largest observed TPS | [supp. S2] | |
| Regression leave-one-out R^2 | DeepSeek-R1 0.912; Llama 3.1 405B 0.941; Nemotron Ultra 253B 0.893; Llama 3.1 70B 0.932; Mixtral 8x22B 0.921 | [supp. tab. S2] | Median 0.921 [supp. S2] |
| Datacentre scale factor beta | 1.31 = 1.10 * 1.08 * 1.10 | [supp. S5] | |
| Mixed workload | 90% traditional, 10% test-time scaling | §3 fig. 3 | Chosen to approximate long-query incidence; consistent with OpenRouter token telemetry §3 |
| Demand scale | 1 billion queries per day | §3 |
Results
Author-reported. Setup: Monte Carlo over 10,000 draws; H100 nodes; FP8; traditional and test-time-scaling output lengths as above §2 §3.
Per model, no efficiency gains (median Wh per query, IQR in brackets) fig. 1:
| Model | Traditional (300 tokens) | Test-time scaling (5,000 tokens) |
|---|---|---|
| DeepSeek-R1 671B | 0.63 (0.26-1.29) | 10.6 (4.29-21.7) |
| Llama 3.1 405B | 0.39 (0.19-0.68) | 3.39 (1.69-6.01) |
| Llama 3.1 Nemotron Ultra 253B | 0.13 (0.05-0.26) | 2.17 (0.97-4.38) |
| Mixtral 8x22B | 0.06 (0.03-0.11) | 0.53 (0.27-0.93) |
| Llama 3.1 70B | 0.09 (0.05-0.17) | 0.76 (0.39-1.35) |
Baseline blend and line-of-sight scenarios (Wh per query) fig. 2:
| Scenario | Traditional median (IQR) | Test-time median (IQR) |
|---|---|---|
| Baseline, models above 200B | 0.31 (0.16-0.60) | 3.91 (2.15-7.05) |
| Model improvement, alpha 1.5-10 | 0.08 (0.04-0.17) | 1.01 (0.48-2.17) |
| Serving platform, alpha 1.5-5 | 0.11 (0.06-0.23) | 1.42 (0.74-2.85) |
| Hardware and datacentre, alpha 1.5-2.5 | 0.16 (0.08-0.31) | 2.01 (1.09-3.71) |
Illustrative stacks (text, not separate Monte Carlo runs) §3: a conservative stack gives roughly 8-9x (about 1.5x hardware, 2x serving, 2.5-3x model); an optimistic stack gives about 20x (2x hardware, 2.5x serving, 4x model). The authors note these overstate gains when layers overlap.
Power-proportional variant [supp. S4] [supp. fig. S3]: letting node power rise linearly with TPS (idle 2.7 kW to 0.9 * P_max) changes the baseline median to 0.32 Wh and the test-time median to 4.71 Wh (IQR 2.44-8.72).
Datacentre totals (1 billion queries per day, beta = 1.31) §3 fig. 3:
| Scenario | GWh per day |
|---|---|
| Traditional baseline | 0.73 |
| Traditional, line-of-sight alpha 1.5-3 | 0.33 |
| 10% test-time scaling, baseline | 1.71 (0.66 traditional + 1.05 test-time) |
| 10% test-time scaling, optimised | 0.80 (0.29 traditional + 0.51 test-time) |
The authors put the 0.8 GWh/day figure at about 0.4% of the energy used to power US household television, and relate the baseline to a 30 MW H100 data centre running at 80% utilisation for under 0.6 GWh per day §3.
Comparison with prior estimates tab. 1 p. 5-6. Values are the study's reported figures, normalised to H100 FP8 where the study allows. The "within IQR" column is the study's check against its own range:
| Source | Type | Model or claim | Reported Wh | Within IQR |
|---|---|---|---|---|
| Altman 2025 | Disclosure | "average" ChatGPT query | 0.34 | yes |
| Elsworth et al. 2025 | Measurement | "typical" Gemini request | 0.24 | yes |
| You 2025 | Estimate | GPT-4o, 500 tokens | 0.30 | yes |
| Jegham et al. 2025 | Estimate | GPT-4o, 300 tokens | 0.42 | yes |
| De Vries 2023 | Estimate | "average" ChatGPT query | 2.9 | no |
| ML.ENERGY v2.0 | Measurement | Mixtral 8x22B, 389 tokens | 0.11 | yes |
| ML.ENERGY v3.0 | Measurement | Llama 3.1 70B, 361 tokens | 0.04 | no |
| Caravaca 2025 | Measurement | Llama 3.1 70B, 300 tokens | 0.05 | yes |
| ML.ENERGY v3.0 | Measurement | Llama 3.1 405B, 367 tokens | 0.21 | yes |
| Caravaca 2025 | Measurement | Llama 3.1 405B, 300 tokens | 0.21 | yes |
| ML.ENERGY v3.0 | Measurement | DeepSeek-V3, 8,968 tokens | 9.30 | yes |
| ML.ENERGY v3.0 | Measurement | DeepSeek-R1, 11,287 tokens | 20.9 | yes |
| AI Energy Score 2025 | Measurement | Llama 3.1 70B, FP16 adjusted | 1.01 | no |
| IEA 2025 | Estimate | Mixtral 8x22B | about 1.25 | no |
| IEA 2025 | Estimate | DeepSeek-R1 | about 2.25 | no |
The paper concludes that most published figures for production-scale measurements fall within its IQR, and that the non-production estimates overstate energy by 4-20x tab. 1 §4.
Paper vs code
No official code. The paper says analysis scripts "will be open sourced at the time of publication" p. 13, and it links no code repository for this analysis. Searches done: the paper's text for links; the GitHub repository search API with the title words "inference energy per query test-time scaling" and "energy per query LLM inference line-of-sight", both returning zero results. The only analysis inputs are the public TensorRT-LLM tables in [supp. S1], which the paper cites from NVIDIA's own documentation.
Pitfalls
- Table 1 and Figure 1 disagree on DeepSeek-R1. Table 1 gives an IQR of 0.19-0.68 for the 0.63 Wh median tab. 1; Figure 1a gives 0.26-1.29 fig. 1. Use the figure values only after checking the source.
- Two different values for the same datacentre scenario. Figure 3a gives 0.33 GWh per day for the line-of-sight traditional scenario, while the matching bar in Figure 3b gives 0.29 GWh fig. 3. The text uses alpha in [1.5, 3] for both. The gap is not explained.
- Maximum node power. Section 2 gives P_max of 10.2 kW for 8 GPUs and 12.5 kW for 10 GPUs §2. The datacentre calculation uses 11.3 kW peak and 2.7 kW idle [supp. S5]. Pick one and document which.
- Effective length. The main analysis sets L_eff equal to L_out with fixed L_in = 500 §2. Supplemental Note S3 defines L_eff as L_in + L_out [supp. S3]. The two give different energy for long prompts: the authors report within 6.5% for traditional queries at L_in = 500, and at L_in = 5,000 the traditional distribution becomes bimodal, because long prefill dominates short outputs [supp. S3].
- Regression coefficients are not in the paper. The form of the log-linear TPS model is given, but the fitted beta values are not stated [supp. S2]. Refit from the rows of [supp. tab. S1] before reproducing the medians. The paper's fit covers outputs up to 4,000 tokens, and its cap means the throughput stays flat beyond that [supp. S2].
- Throughput is a saturated-node figure. The TPS values come from high-concurrency benchmarks, so the per-query energy assumes the node is always full. Lower utilisation raises energy per query, and the paper's power-proportional variant only partly covers this [supp. S4].
- Distributions are not fully specified. The exponential rate for L_out, the discrete values of L_in, and the log-normal sigma for P_node, PUE and alpha are not stated. The card gives only the P5-P95 ranges and centres §2 §3.
- Alpha is applied as a divisor or multiplier of energy, not throughput. Equation 1 divides by alpha, and the text says alpha can scale throughput or energy per query equally §2 eq. 1. Implement it once, in one place.
- Categories are sampled, then stacked by hand. The Monte Carlo treats categories as independent, but the combined 8-20x figures are derived by multiplying category endpoints, which the authors say overstates gains §3.
- Long outputs and agents are under-modelled. Prefill cost for very long inputs is not modelled, and agentic workloads with tool calls and several parallel calls may be dominated by overhead the paper excludes §4.
- Baseline model set. The "above 200B" label on the baseline is shorthand. The sampled models are DeepSeek-R1 671B, Llama 3.1 405B and Llama 3.1 Nemotron Ultra 253B §3 fig. 1. The 200B threshold itself is motivated by other models, such as Qwen 3 and GPT-4o, which are not sampled §3.
- Electricity scope. Most public measurements report GPU energy only, while these estimates include PUE and node overhead §3. Compare absolute values with that in mind.
- Grid and history comparisons are not model outputs. The comparisons with US grid share and with past data-centre forecasts in §3 are the authors' reasoning, drawing on cited external sources [62]. The energy model does not compute them.
Lineage
- Compared against: the production and non-production measurements and estimates in tab. 1, including ML.ENERGY (Chung et al., NeurIPS 2025) and the AI Energy Score (Salesforce, Hugging Face).
- Serving techniques used to derive the serving-platform category §3: KV cache management, disaggregated prefill and decode, speculative decoding, and FP8 quantisation. These are cited to the paper's references rather than reproduced here.
- Related wikillm pages: test-time-scaling, llm-serving, model-routing.
Source and license
Adapted from “Energy Use of AI Inference, Efficiency Pathways, and Test-Time Scaling” by Felipe Oviedo, Fiodar Kazhamiaka, Esha Choukse, Allen Kim, Amy Luers, Melanie Nakagawa, Ricardo Bianchini, Juan M. Lavista Ferres (arXiv:2509.20241), used under CC BY-SA 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. This page is licensed under CC BY-SA 4.0.