LLM energy leaderboards: comparing models by Wh/token and choosing on efficiency

Contents

Notation: amounts in euros (N €), decimals with a point. The dollar sign is not used (on this site it is a formula delimiter). Generic example hardware; no real infrastructure.

TL;DR

There are three OSS leaderboards with public data and documented methodology for comparing the energy efficiency of LLMs in inference: Hugging Face AI Energy Score (166 models, Wh/query on H100, 1–5 star scale, launched February 2025), ML.ENERGY Leaderboard v3 (University of Michigan, J/token per task, Zeus tooling, December 2025) and MLPerf Power (samples/joule certified with a physical Yokogawa WT310E power meter). The three measure different dimensions and are not directly interchangeable. The available data shows that reasoning models consume up to 700× more energy than their non-reasoning equivalents; that MoE models consume roughly 3× fewer J/token than a dense model with equivalent active parameters; and that INT4 quantisation cuts consumption by up to 79 % against FP16 under favourable conditions. The inference engine (vLLM vs Transformers) can move the result another 25–40 %. Without fixing hardware, engine, batch size and task, no comparison between leaderboards is valid.


Track context

This article is C5 of the energy pillar. The base context:

The fundamentals of quantisation are a prerequisite for the quantisation section of this article.


The three leaderboards: technical data sheet

1 · Hugging Face AI Energy Score

FieldDetail
URLhuggingface.co/AIEnergyScore · huggingface.co/spaces/AIEnergyScore/Leaderboard
OrganisationHugging Face (Sasha Luccioni et al.), with Salesforce and Cohere as initial partners
LaunchFebruary 2025 (AI Action Summit, Paris); v2 December 2025
Models indexed166 (v1, Feb 2025); +39 new ones in v2 (Dec 2025)
Tasks measured10 tasks: text generation, summarisation, classification, image generation, ASR, audio generation, translation, question answering, reasoning (added in v2)
Unit of measurementWh (watt-hour) per 1,000 queries of the task
Reference hardwareNVIDIA H100 exclusively (a single GPU for class A/B models; multiple for class C)
Measurement toolingCodeCarbon (GPU energy) + the ai-energy-benchmarks package (OSS, PyPI)
Rating system1–5 stars per task: quintiles of the energy range; ⭐⭐⭐⭐⭐ = the 20 % most efficient
Reference batch sizeBatch size = 1 (does not reflect production with aggressive batching)
Access for proprietary modelsYes, via an audited Docker container
Update frequencyNo fixed cadence; v1 Feb 2025, v2 Dec 2025
Project licenceApache 2.0 (repository github.com/huggingface/AIEnergyScore)

Scope of the metric. The AI Energy Score measures GPU energy only (CodeCarbon); it does not capture CPU, DRAM or system overhead. The Wh/1k-queries unit covers the whole run time (prefill + decode + framework overhead), but at batch = 1. The results are therefore comparable between models under the same test conditions, but not extrapolable to a production environment with real concurrency without correction.

Model class (the project’s internal classification):

ClassDefinition
AFits on a consumer GPU (≤ ~24 GB VRAM)
BRequires a cloud GPU (≥ 40 GB VRAM)
CRequires multiple GPUs

2 · ML.ENERGY Leaderboard

FieldDetail
URLml.energy/leaderboard
OrganisationSymbiotic Lab, University of Michigan (Mosharaf Chowdhury, Jae-Won Chung et al.)
Reference paperarXiv 2505.06371 — “The ML.ENERGY Benchmark: Toward Automated Inference Energy Measurement and Optimization” (NeurIPS 2025 D&B, Spotlight)
Current versionv3.0 (December 2025)
Measurement toolingZeus (github.com/ml-energy/zeus) via NVML + RAPL; measurement overhead in single-digit ms
Unit of measurementJ/token (energy per output token generated) and total energy per complete response
Reference hardwareNVIDIA A100 80 GB and H100 SXM (declared per submission; varies between models)
Tasks measured6 tasks: chat (text conversation), reasoning, code generation, summarisation, visual question answering, video generation
NormalisationMean energy per complete response (prefill + decode). Output J/token is also reported. The task is stated explicitly because it determines the output length
Scope of the measurementGPU via NVML + CPU/DRAM via RAPL; not a power meter at the wall
Models covered~40 architectures in the NeurIPS 2025 version; the web leaderboard is updated with more
LicenceApache 2.0 (zeus: github.com/ml-energy/zeus); MIT (benchmark: github.com/ml-energy/benchmark)
Update frequencyContinuous on the web leaderboard; the paper is a point-in-time snapshot

Zeus as tooling. Zeus is the measurement engine of the ML.ENERGY Leaderboard and also a standalone package (pip install zeus-ml). It supports NVIDIA GPU (NVML), AMD GPU (ROCm), CPU (RAPL), DRAM (RAPL), Apple Silicon and NVIDIA Jetson. The ZeusMonitor adds measurement overhead in single-digit milliseconds. Since May 2025 it has been a PyTorch ecosystem project. MIT licence.


3 · MLPerf Power

The full data sheet is in the C4 article. A summary of the points relevant for comparison with the previous two:

FieldDetail
URLmlcommons.org/benchmarks/inference-datacenter/
OrganisationMLCommons Power Working Group (>20 orgs)
Unit of measurementsamples/joule (throughput/mean power) = the inverse of J/sample
HardwareComplete node measured at the wall (AC); Yokogawa WT310E analyser (±0.1 % of reading)
LLM tasksGPT-J 6B, Llama 2 70B, Mixtral 8×7B (from v5.0)
GranularityComplete node (GPU + CPU + RAM + fans + PSU losses); no attribution to individual workloads
Node overhead over GPU25–45 % of total consumption in submissions with a physical analyser
Licence of the corpusPublic results on GitHub (mlcommons/inference_results_vX.Y); PTDaemon requires MLCommons membership

Comparison of the three leaderboards

DimensionHF AI Energy ScoreML.ENERGY LeaderboardMLPerf Power
UnitWh/1k-queriesOutput J/tokensamples/J (complete node)
Fixed hardwareH100 (all models)A100/H100 (varies)Depends on the submitter
MeasurementCodeCarbon (GPU)Zeus NVML+RAPLPhysical AC power meter (Yokogawa)
System coverageGPU onlyGPU + CPU + DRAMComplete node including fans and PSU
Batch size1Varies by taskPer LoadGen scenario
Models covered166+ (text, image, audio)~40 generative LLMsFew (GPT-J, Llama 2, Mixtral)
Proprietary modelsYes (audited Docker)No (OSS only)Yes (MLCommons members)
External certificationNoNoYes (SPEC PTDaemon)
FrequencyPoint-in-time (v1, v2)ContinuousHalf-yearly (MLPerf rounds)
LicenceApache 2.0Apache 2.0 / MITPublic results; PTDaemon: membership

Incompatibility between leaderboards. The three measure different dimensions: Wh/query ≠ J/token ≠ node samples/J. A direct comparison requires converting units and assuming that the hardware, the engine and the task are equivalent, which is rarely the case across leaderboards.


How energy per token is measured and normalised

The base identity is developed in the C2 article:

$$E_{\text{token}} \,[\text{J/tok}] = \frac{\bar{P} \,[\text{W}]}{\text{throughput} \,[\text{tok/s}]}$$

To compare models against each other, every factor other than the model must be fixed:

FactorEffect if it variesHow to fix it
HardwareH100 vs A100 vs L40S changes the result by 2–4×Declare the exact hardware; compare only within the same HW
Inference enginevLLM vs Transformers: 25–40 % difference in J/tokenFix the engine and the version
Batch size / concurrencyBatch 1 vs batch 32: throughput rises but so does power; the ratio variesDeclare the batch size; compare within the same regime
Model precisionFP16 vs INT8 vs INT4: up to −79 % energyDeclare the precision; do not mix
Response lengthA query with 50 tokens ≠ one with 500Use a fixed dataset or normalise per token
Measurement windowIncluding warm-up or idle inflates the numeratorAlign the power window with the token window (see C2)

Conversion formula Wh/query ↔ J/token:

$$E_{\text{J/tok}} = \frac{E_{\text{Wh/query}} \times 3600}{\bar{n}_{\text{tokens/query}}}$$

Example: if a model consumes 0.05 Wh/query (= 180 J/query) and generates an average of 200 tokens per query:

$$E_{\text{J/tok}} = \frac{0{.}05 \times 3600}{200} = \frac{180}{200} = 0{.}9 \,\text{J/tok}$$

AI Energy Score data: concrete examples

The v2 data (December 2025, H100 hardware, batch = 1, text generation task with reasoning on/off):

ModelActive paramsReasoningGPU Wh/1k queriesStars (text-gen)
DistilGPT-282 M1.31⭐⭐⭐⭐⭐
SmolLM3-3B3 BOff18.35⭐⭐⭐⭐
SmolLM3-3B3 BOn12,791.22
Phi-4-reasoning-plus15 BOff18.42⭐⭐⭐⭐
Phi-4-reasoning-plus15 BOn9,461.61
DeepSeek-R1-Distill-Llama-70B70 BOff49.53⭐⭐⭐
DeepSeek-R1-Distill-Llama-70B70 BOn7,626.53

Source: Hugging Face AI Energy Score v2 (Dec 2025).

The reasoning multiplier. The energy increase when reasoning is switched on ranges from ×154 (DeepSeek-R1-Distill-Llama-70B) to ×697 (SmolLM3-3B). The direct cause: reasoning models generate between 300 and 800 times more tokens than their non-reasoning equivalents (internal chains of thought). The mean across the v2 corpus is ×30 extra energy for reasoning.

Newer models are not always more efficient. Of the 14 comparable models (no reasoning, no MoE, similar size) between the Feb 2025 and Dec 2025 cohorts: 8 out of 14 had equal or higher energy. The range runs from 3 % of the reference model’s energy to almost 2×. Parameter scale is no longer enough to estimate efficiency.


ML.ENERGY Leaderboard data: J/token by family

The data from the arXiv 2505.06371 paper and from leaderboard v3 (A100/H100 hardware, vLLM as the reference engine):

Scale within one family (Llama 3):

SizeParamsRelative J/token (base = 1B)Params/energy ratio
Llama 3 · 1B1 B1.0×
Llama 3 · 8B8 B~2.1×8× params → 2.1× energy
Llama 3 · 70B70 B~7.3×70× params → 7.3× energy

The sublinearity (70× params → 7.3× energy, not 70×) reflects that inference energy is dominated by memory bandwidth (memory-bandwidth bound), not by raw FLOPs.

Dense vs MoE:

ModelTypeTotal paramsActive params/tokenRelative J/token
Llama 3 · 8BDense8 B8 B1.0×
Mixtral 8×7BMoE (top-2)47 B~13 B~0.33×
Llama 3 · 70BDense70 B70 B~3.5×

The MoE activates only 2 of 8 experts per token. Mixtral 8×7B consumes roughly ⅓ of the J/token of a dense model with 8B active, at a quality comparable to a dense model of larger scale. Routing overhead and holding all the experts in memory cancel out part of the theoretical gain.

Effect of the task (ML.ENERGY v3, same model):

TaskEnergy multiplier per response (vs chat)
Chat (text conversation)1× (reference)
Summarisation~2–4×
Code generation~3–6×
Reasoning~25×
Image + text1.1–5.2×
Video + text1.3–15.0×

Reasoning uses ~10× more tokens per response, and the extra memory of the chain of thought reduces the effective batch size, raising energy per token through memory pressure.


Effect of quantisation on energy per token

Data on NVIDIA H100 hardware, Llama 3 family (arXiv 2508.16712 and arXiv 2504.03360):

PrecisionEnergy reduction vs FP16Condition
FP16reference (0 %)
BF16~0 % (iso-energy)Same hardware and engine
FP8−25 to −35 %H100/H200 with native hardware support
INT8−23 to −44 % (median ~39 %)Depends on batch size; more at low batches
INT4 (AWQ / GPTQ)−50 to −79 %Requires hardware with efficient low-precision support

Warning. On GPUs without native INT4 hardware support (or with suboptimal dequantisation kernels), quantisation can increase latency and energy per token rather than reduce them, because of run-time dequantisation overhead. The benefit of quantisation is real on H100/A100 with TensorRT-LLM or a well-configured llama.cpp, but it is not guaranteed with any engine.

Quantisation and throughput: the memory reduction per model frees VRAM, which allows larger batch sizes. At a larger batch, throughput rises more than power does, cutting J/token further still. The net effect can exceed the direct reduction in energy per operation.

Relative J/tokenFP16100 %FP8~70 %INT8~61 %INT4~30 %Hardware: H100 SXM with native support. Without it, INT4 can be iso-energetic or worse than FP16.

Effect of the inference engine

The engine is a variable that model-level leaderboards tend to fix, but which in production is a decision of your own. Data from published comparisons (vLLM, TensorRT-LLM, naive Transformers, A100):

EngineRelative J/token vs Transformers baseline
Transformers (naive, not optimised)1.0× (reference)
vLLM (PagedAttention, continuous batching)−25 to −35 %
TensorRT-LLM (optimised NVIDIA kernels, FP8)−35 to −45 %
llama.cpp (hybrid CPU/GPU, INT4)Variable; −30 to −60 % depending on hardware

Moving from naive Transformers to TensorRT-LLM can cut energy per token by more than moving from a 70B model to an 8B one of the same origin. The choice of engine is a first-order lever on energy efficiency.


Limits of energy leaderboards

LimitDescription
Hardware dependenceA ranking on H100 is not valid on A100 or L40S without correction. The hierarchy of models can change from one piece of hardware to another.
Engine dependenceThe results are valid only for the engine they were measured with. A model that is ×2 more efficient on the leaderboard can fall behind if a slower engine is used.
Artificial batch sizeAI Energy Score uses batch = 1. In production with aggressive batching, the efficiency relationship between large and small models changes: the large ones scale better with batch.
Training not capturedAll the leaderboards measure inference only. The energy cost of training (which can exceed that of inference by 1,000× over the life of the model) is out of scope.
Incompatibility between leaderboardsWh/query, J/token and samples/J measure different things. Converting between them requires knowing the mean output length, which varies by task and dataset.
Partial system coverageAI Energy Score and ML.ENERGY measure GPU (+CPU/DRAM with Zeus); they do not capture the overhead of the complete system (PSU losses, fans, interconnect). MLPerf Power does, but covers few models.
Data latencyThe leaderboards publish results months after the tests. New hardware (H200, B100, B200) may have no data available at the time of the decision.
No PUENone of the three includes datacenter PUE. For real TCO, the leaderboard J/token must be multiplied by your own PUE.

Decision table: choosing a model on energy efficiency

The selection criteria in order, without recommendation prose:

CriterionQuestionAction
Task with reasoningDoes the task require step-by-step reasoning?Yes → multiply the model’s base energy by ×30–700 before comparing. If there is a non-reasoning alternative with sufficient quality, prefer it.
Size vs minimum qualityWhat is the minimum acceptable quality for the task?Consult quality benchmarks (see B7 when available). Pick the smallest model that clears the quality threshold; energy grows sublinearly with size.
Dense vs MoEDoes the hardware have enough memory for the full MoE?If yes: the active-equivalent MoE consumes ~3× fewer J/token than the equivalent dense model. If not: paging or offload eats the gain.
PrecisionDoes the hardware have native FP8/INT4 support?H100/H200: native FP8 (−30 %). With TensorRT-LLM: INT4 AWQ (−50 to −79 %). Without native support: stay on FP16 or BF16 until validated with your own benchmark.
Inference engineIs the optimal engine for the hardware being used?Measure with C3. If the engine is not optimised, changing engine can cut energy more than changing model.
Consult the leaderboardIs the task covered by AI Energy Score or ML.ENERGY?Filter by: same task, same hardware class, reasoning explicitly off/on. Do not compare models from different hardware classes or different engines.
Validate on your own hardwareAre the leaderboard results on the same HW as yours?Always validate with Zeus or DCGM on your own hardware before taking the final decision. The leaderboard is a reference, not a prediction.

Quick signals table:

SignalEffect on energyData source
Switching reasoning on×30–700AI Energy Score v2
Going from dense 8B to dense 70B~×3.5ML.ENERGY Leaderboard v3
Going from dense 8B to active-equivalent 8B MoE~×0.33 (−67 %)ML.ENERGY v3
FP16 → INT4 (compatible hardware)−50 to −79 %arXiv 2508.16712, 2504.03360
Naive Transformers → TensorRT-LLM FP8−35 to −45 %TokenPowerBench, ML.ENERGY
PUE 1.0 → PUE 1.5+50 % on real datacenter energyMLPerf Power (scope)

Reference data: energy in a generic node (4×H100 SXM)

Generic example hardware, to anchor the leaderboard values to a real node:

ParameterIndicative value
TDP 4×H100 SXM 80 GB4 × 700 W = 2,800 W (GPU only)
Complete-node system power (at the wall)~3,500–5,000 W depending on load
Non-GPU overhead over GPU25–45 %
J/token Llama 3 70B FP16, vLLM, batch 8~1–3 J/tok (indicative, A100/H100)
J/token Llama 3 8B FP16, vLLM, batch 8~0.3–0.7 J/tok (indicative)
J/token Mixtral 8×7B FP16, vLLM, batch 8~0.4–0.8 J/tok (indicative)
Energy per 1M tokens (Llama 3 70B, PUE 1.4)~0.5–1.2 kWh

The J/token values are indicative and depend heavily on batch size, prompt length, prefill/decode ratio and engine version. For certified values, consult the MLPerf Power submissions (mlcommons.org).

For the alternative reference node (4×A100 PCIe 80 GB, TDP ~300 W each):

ParameterIndicative value
TDP 4×A100 PCIe4 × 300 W = 1,200 W (GPU only)
Complete-node system power~1,500–2,000 W
J/token Llama 3 70B FP16, vLLM~2–5 J/tok (indicative; higher because of lower HBM bandwidth vs SXM)

How to use the leaderboards in practice

A decision flow based on the public data available:

StepActionResource
1Identify the dominant task of the workload
2Consult AI Energy Score filtered by task and hardware classhuggingface.co/spaces/AIEnergyScore/Leaderboard
3Note the models with ⭐⭐⭐⭐ or ⭐⭐⭐⭐⭐ on the taskWh/1k-queries as a relative reference
4Cross-check with ML.ENERGY for the J/token of each candidateml.energy/leaderboard
5If any model is in MLPerf Power (Llama 2, GPT-J, Mixtral), consult the certified samples/Jmlcommons.org/benchmarks/inference-datacenter/
6Select the 2–3 candidates with the best energy/quality ratio
7Measure on your own hardware with Zeus or DCGMgithub.com/ml-energy/zeus
8Multiply the measured J/token by the datacenter PUEJ/token × PUE = effective J/token in the datacenter
9Work out the electricity cost per token at the contracted priceSee C2

See also


Sources