<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Energy-Efficiency on lo0 — Tech Blog</title><link>https://blog.lo0.es/en/tags/energy-efficiency/</link><description>Recent content in Energy-Efficiency on lo0 — Tech Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 16 Jun 2026 04:00:00 +0200</lastBuildDate><atom:link href="https://blog.lo0.es/en/tags/energy-efficiency/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM energy leaderboards: comparing models by Wh/token and choosing on efficiency</title><link>https://blog.lo0.es/en/posts/llm-energy-leaderboards-wh-per-token/</link><pubDate>Tue, 16 Jun 2026 04:00:00 +0200</pubDate><guid>https://blog.lo0.es/en/posts/llm-energy-leaderboards-wh-per-token/</guid><description>&lt;blockquote>
&lt;p>Notation: amounts in &lt;strong>euros (N €)&lt;/strong>, decimals with a point. The dollar sign is not used
(on this site it is a formula delimiter). Generic example hardware; no real infrastructure.&lt;/p>
&lt;/blockquote>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>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.&lt;/p>
&lt;hr>
&lt;h2 id="track-context">Track context&lt;/h2>
&lt;p>This article is C5 of the energy pillar. The base context:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/ai-energy-benchmarking-frameworks-metrics-state-of-the-art/">C1 — State of the art: energy benchmarking of LLM frameworks&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/energy-per-token-spain-methodology-electricity-market-speculation/">C2 — Energy per token: methodology&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">C3 — Measurement tooling in deployment&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/mlperf-power-energy-efficiency-benchmark/">C4 — MLPerf Power&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://blog.lo0.es/en/posts/quantization-llm-inference-fp8-int4-gguf/">fundamentals of quantisation&lt;/a> are a prerequisite for the quantisation section of this article.&lt;/p>
&lt;hr>
&lt;h2 id="the-three-leaderboards-technical-data-sheet">The three leaderboards: technical data sheet&lt;/h2>
&lt;h3 id="1--hugging-face-ai-energy-score">1 · Hugging Face AI Energy Score&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Detail&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>URL&lt;/strong>&lt;/td>
&lt;td>huggingface.co/AIEnergyScore · huggingface.co/spaces/AIEnergyScore/Leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Organisation&lt;/strong>&lt;/td>
&lt;td>Hugging Face (Sasha Luccioni et al.), with Salesforce and Cohere as initial partners&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Launch&lt;/strong>&lt;/td>
&lt;td>February 2025 (AI Action Summit, Paris); v2 December 2025&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Models indexed&lt;/strong>&lt;/td>
&lt;td>166 (v1, Feb 2025); +39 new ones in v2 (Dec 2025)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Tasks measured&lt;/strong>&lt;/td>
&lt;td>10 tasks: text generation, summarisation, classification, image generation, ASR, audio generation, translation, question answering, reasoning (added in v2)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Unit of measurement&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Wh (watt-hour) per 1,000 queries&lt;/strong> of the task&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Reference hardware&lt;/strong>&lt;/td>
&lt;td>&lt;strong>NVIDIA H100&lt;/strong> exclusively (a single GPU for class A/B models; multiple for class C)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Measurement tooling&lt;/strong>&lt;/td>
&lt;td>CodeCarbon (GPU energy) + the &lt;code>ai-energy-benchmarks&lt;/code> package (OSS, PyPI)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Rating system&lt;/strong>&lt;/td>
&lt;td>1–5 stars per task: quintiles of the energy range; ⭐⭐⭐⭐⭐ = the 20 % most efficient&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Reference batch size&lt;/strong>&lt;/td>
&lt;td>Batch size = 1 (does not reflect production with aggressive batching)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Access for proprietary models&lt;/strong>&lt;/td>
&lt;td>Yes, via an audited Docker container&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Update frequency&lt;/strong>&lt;/td>
&lt;td>No fixed cadence; v1 Feb 2025, v2 Dec 2025&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Project licence&lt;/strong>&lt;/td>
&lt;td>Apache 2.0 (repository github.com/huggingface/AIEnergyScore)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;p>Model class (the project&amp;rsquo;s internal classification):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Class&lt;/th>
&lt;th>Definition&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>A&lt;/td>
&lt;td>Fits on a consumer GPU (≤ ~24 GB VRAM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>B&lt;/td>
&lt;td>Requires a cloud GPU (≥ 40 GB VRAM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>C&lt;/td>
&lt;td>Requires multiple GPUs&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h3 id="2--mlenergy-leaderboard">2 · ML.ENERGY Leaderboard&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Detail&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>URL&lt;/strong>&lt;/td>
&lt;td>ml.energy/leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Organisation&lt;/strong>&lt;/td>
&lt;td>Symbiotic Lab, University of Michigan (Mosharaf Chowdhury, Jae-Won Chung et al.)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Reference paper&lt;/strong>&lt;/td>
&lt;td>arXiv 2505.06371 — &amp;ldquo;The ML.ENERGY Benchmark: Toward Automated Inference Energy Measurement and Optimization&amp;rdquo; (NeurIPS 2025 D&amp;amp;B, Spotlight)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Current version&lt;/strong>&lt;/td>
&lt;td>v3.0 (December 2025)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Measurement tooling&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Zeus&lt;/strong> (github.com/ml-energy/zeus) via NVML + RAPL; measurement overhead in single-digit ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Unit of measurement&lt;/strong>&lt;/td>
&lt;td>&lt;strong>J/token&lt;/strong> (energy per output token generated) and total energy per complete response&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Reference hardware&lt;/strong>&lt;/td>
&lt;td>NVIDIA A100 80 GB and H100 SXM (declared per submission; varies between models)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Tasks measured&lt;/strong>&lt;/td>
&lt;td>6 tasks: chat (text conversation), reasoning, code generation, summarisation, visual question answering, video generation&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Normalisation&lt;/strong>&lt;/td>
&lt;td>Mean energy per complete response (prefill + decode). Output J/token is also reported. The task is stated explicitly because it determines the output length&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Scope of the measurement&lt;/strong>&lt;/td>
&lt;td>GPU via NVML + CPU/DRAM via RAPL; not a power meter at the wall&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Models covered&lt;/strong>&lt;/td>
&lt;td>~40 architectures in the NeurIPS 2025 version; the web leaderboard is updated with more&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Licence&lt;/strong>&lt;/td>
&lt;td>Apache 2.0 (zeus: github.com/ml-energy/zeus); MIT (benchmark: github.com/ml-energy/benchmark)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Update frequency&lt;/strong>&lt;/td>
&lt;td>Continuous on the web leaderboard; the paper is a point-in-time snapshot&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Zeus as tooling. Zeus is the measurement engine of the ML.ENERGY Leaderboard and also a standalone package (&lt;code>pip install zeus-ml&lt;/code>). It supports NVIDIA GPU (NVML), AMD GPU (ROCm), CPU (RAPL), DRAM (RAPL), Apple Silicon and NVIDIA Jetson. The &lt;code>ZeusMonitor&lt;/code> adds measurement overhead in single-digit milliseconds. Since May 2025 it has been a PyTorch ecosystem project. MIT licence.&lt;/p>
&lt;hr>
&lt;h3 id="3--mlperf-power">3 · MLPerf Power&lt;/h3>
&lt;p>The full data sheet is in the &lt;a href="https://blog.lo0.es/en/posts/mlperf-power-energy-efficiency-benchmark/">C4 article&lt;/a>. A summary of the points relevant for comparison with the previous two:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Detail&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>URL&lt;/strong>&lt;/td>
&lt;td>mlcommons.org/benchmarks/inference-datacenter/&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Organisation&lt;/strong>&lt;/td>
&lt;td>MLCommons Power Working Group (&amp;gt;20 orgs)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Unit of measurement&lt;/strong>&lt;/td>
&lt;td>&lt;strong>samples/joule&lt;/strong> (throughput/mean power) = the inverse of J/sample&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Hardware&lt;/strong>&lt;/td>
&lt;td>Complete node measured at the wall (AC); Yokogawa WT310E analyser (±0.1 % of reading)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>LLM tasks&lt;/strong>&lt;/td>
&lt;td>GPT-J 6B, Llama 2 70B, Mixtral 8×7B (from v5.0)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Granularity&lt;/strong>&lt;/td>
&lt;td>Complete node (GPU + CPU + RAM + fans + PSU losses); no attribution to individual workloads&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Node overhead over GPU&lt;/strong>&lt;/td>
&lt;td>25–45 % of total consumption in submissions with a physical analyser&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Licence of the corpus&lt;/strong>&lt;/td>
&lt;td>Public results on GitHub (mlcommons/inference_results_vX.Y); PTDaemon requires MLCommons membership&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="comparison-of-the-three-leaderboards">Comparison of the three leaderboards&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Dimension&lt;/th>
&lt;th>HF AI Energy Score&lt;/th>
&lt;th>ML.ENERGY Leaderboard&lt;/th>
&lt;th>MLPerf Power&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Unit&lt;/strong>&lt;/td>
&lt;td>Wh/1k-queries&lt;/td>
&lt;td>Output J/token&lt;/td>
&lt;td>samples/J (complete node)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Fixed hardware&lt;/strong>&lt;/td>
&lt;td>H100 (all models)&lt;/td>
&lt;td>A100/H100 (varies)&lt;/td>
&lt;td>Depends on the submitter&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Measurement&lt;/strong>&lt;/td>
&lt;td>CodeCarbon (GPU)&lt;/td>
&lt;td>Zeus NVML+RAPL&lt;/td>
&lt;td>Physical AC power meter (Yokogawa)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>System coverage&lt;/strong>&lt;/td>
&lt;td>GPU only&lt;/td>
&lt;td>GPU + CPU + DRAM&lt;/td>
&lt;td>Complete node including fans and PSU&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Batch size&lt;/strong>&lt;/td>
&lt;td>1&lt;/td>
&lt;td>Varies by task&lt;/td>
&lt;td>Per LoadGen scenario&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Models covered&lt;/strong>&lt;/td>
&lt;td>166+ (text, image, audio)&lt;/td>
&lt;td>~40 generative LLMs&lt;/td>
&lt;td>Few (GPT-J, Llama 2, Mixtral)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Proprietary models&lt;/strong>&lt;/td>
&lt;td>Yes (audited Docker)&lt;/td>
&lt;td>No (OSS only)&lt;/td>
&lt;td>Yes (MLCommons members)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>External certification&lt;/strong>&lt;/td>
&lt;td>No&lt;/td>
&lt;td>No&lt;/td>
&lt;td>Yes (SPEC PTDaemon)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Frequency&lt;/strong>&lt;/td>
&lt;td>Point-in-time (v1, v2)&lt;/td>
&lt;td>Continuous&lt;/td>
&lt;td>Half-yearly (MLPerf rounds)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Licence&lt;/strong>&lt;/td>
&lt;td>Apache 2.0&lt;/td>
&lt;td>Apache 2.0 / MIT&lt;/td>
&lt;td>Public results; PTDaemon: membership&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;hr>
&lt;h2 id="how-energy-per-token-is-measured-and-normalised">How energy per token is measured and normalised&lt;/h2>
&lt;p>The base identity is developed in the &lt;a href="https://blog.lo0.es/en/posts/energy-per-token-spain-methodology-electricity-market-speculation/">C2 article&lt;/a>:&lt;/p>
$$E_{\text{token}} \,[\text{J/tok}] = \frac{\bar{P} \,[\text{W}]}{\text{throughput} \,[\text{tok/s}]}$$
&lt;p>To compare models against each other, every factor other than the model must be fixed:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Factor&lt;/th>
&lt;th>Effect if it varies&lt;/th>
&lt;th>How to fix it&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Hardware&lt;/strong>&lt;/td>
&lt;td>H100 vs A100 vs L40S changes the result by 2–4×&lt;/td>
&lt;td>Declare the exact hardware; compare only within the same HW&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Inference engine&lt;/strong>&lt;/td>
&lt;td>vLLM vs Transformers: 25–40 % difference in J/token&lt;/td>
&lt;td>Fix the engine and the version&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Batch size / concurrency&lt;/strong>&lt;/td>
&lt;td>Batch 1 vs batch 32: throughput rises but so does power; the ratio varies&lt;/td>
&lt;td>Declare the batch size; compare within the same regime&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Model precision&lt;/strong>&lt;/td>
&lt;td>FP16 vs INT8 vs INT4: up to −79 % energy&lt;/td>
&lt;td>Declare the precision; do not mix&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Response length&lt;/strong>&lt;/td>
&lt;td>A query with 50 tokens ≠ one with 500&lt;/td>
&lt;td>Use a fixed dataset or normalise per token&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Measurement window&lt;/strong>&lt;/td>
&lt;td>Including warm-up or idle inflates the numerator&lt;/td>
&lt;td>Align the power window with the token window (see C2)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Conversion formula Wh/query ↔ J/token:&lt;/p>
$$E_{\text{J/tok}} = \frac{E_{\text{Wh/query}} \times 3600}{\bar{n}_{\text{tokens/query}}}$$
&lt;p>Example: if a model consumes 0.05 Wh/query (= 180 J/query) and generates an average of 200 tokens per query:&lt;/p>
$$E_{\text{J/tok}} = \frac{0{.}05 \times 3600}{200} = \frac{180}{200} = 0{.}9 \,\text{J/tok}$$
&lt;hr>
&lt;h2 id="ai-energy-score-data-concrete-examples">AI Energy Score data: concrete examples&lt;/h2>
&lt;p>The v2 data (December 2025, H100 hardware, batch = 1, text generation task with reasoning on/off):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Model&lt;/th>
&lt;th>Active params&lt;/th>
&lt;th>Reasoning&lt;/th>
&lt;th>GPU Wh/1k queries&lt;/th>
&lt;th>Stars (text-gen)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>DistilGPT-2&lt;/td>
&lt;td>82 M&lt;/td>
&lt;td>—&lt;/td>
&lt;td>&lt;strong>1.31&lt;/strong>&lt;/td>
&lt;td>⭐⭐⭐⭐⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SmolLM3-3B&lt;/td>
&lt;td>3 B&lt;/td>
&lt;td>Off&lt;/td>
&lt;td>18.35&lt;/td>
&lt;td>⭐⭐⭐⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SmolLM3-3B&lt;/td>
&lt;td>3 B&lt;/td>
&lt;td>On&lt;/td>
&lt;td>12,791.22&lt;/td>
&lt;td>⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Phi-4-reasoning-plus&lt;/td>
&lt;td>15 B&lt;/td>
&lt;td>Off&lt;/td>
&lt;td>18.42&lt;/td>
&lt;td>⭐⭐⭐⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Phi-4-reasoning-plus&lt;/td>
&lt;td>15 B&lt;/td>
&lt;td>On&lt;/td>
&lt;td>9,461.61&lt;/td>
&lt;td>⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DeepSeek-R1-Distill-Llama-70B&lt;/td>
&lt;td>70 B&lt;/td>
&lt;td>Off&lt;/td>
&lt;td>49.53&lt;/td>
&lt;td>⭐⭐⭐&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DeepSeek-R1-Distill-Llama-70B&lt;/td>
&lt;td>70 B&lt;/td>
&lt;td>On&lt;/td>
&lt;td>7,626.53&lt;/td>
&lt;td>⭐&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Source: Hugging Face AI Energy Score v2 (Dec 2025).&lt;/p>
&lt;p>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.&lt;/p>
&lt;p>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&amp;rsquo;s energy to almost 2×. Parameter scale is no longer enough to estimate efficiency.&lt;/p>
&lt;hr>
&lt;h2 id="mlenergy-leaderboard-data-jtoken-by-family">ML.ENERGY Leaderboard data: J/token by family&lt;/h2>
&lt;p>The data from the arXiv 2505.06371 paper and from leaderboard v3 (A100/H100 hardware, vLLM as the reference engine):&lt;/p>
&lt;p>Scale within one family (Llama 3):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Size&lt;/th>
&lt;th>Params&lt;/th>
&lt;th>Relative J/token (base = 1B)&lt;/th>
&lt;th>Params/energy ratio&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Llama 3 · 1B&lt;/td>
&lt;td>1 B&lt;/td>
&lt;td>1.0×&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Llama 3 · 8B&lt;/td>
&lt;td>8 B&lt;/td>
&lt;td>~2.1×&lt;/td>
&lt;td>8× params → 2.1× energy&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Llama 3 · 70B&lt;/td>
&lt;td>70 B&lt;/td>
&lt;td>~7.3×&lt;/td>
&lt;td>70× params → 7.3× energy&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;p>Dense vs MoE:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Model&lt;/th>
&lt;th>Type&lt;/th>
&lt;th>Total params&lt;/th>
&lt;th>Active params/token&lt;/th>
&lt;th>Relative J/token&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Llama 3 · 8B&lt;/td>
&lt;td>Dense&lt;/td>
&lt;td>8 B&lt;/td>
&lt;td>8 B&lt;/td>
&lt;td>1.0×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mixtral 8×7B&lt;/td>
&lt;td>MoE (top-2)&lt;/td>
&lt;td>47 B&lt;/td>
&lt;td>~13 B&lt;/td>
&lt;td>~0.33×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Llama 3 · 70B&lt;/td>
&lt;td>Dense&lt;/td>
&lt;td>70 B&lt;/td>
&lt;td>70 B&lt;/td>
&lt;td>~3.5×&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;p>Effect of the task (ML.ENERGY v3, same model):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Task&lt;/th>
&lt;th>Energy multiplier per response (vs chat)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Chat (text conversation)&lt;/td>
&lt;td>1× (reference)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Summarisation&lt;/td>
&lt;td>~2–4×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Code generation&lt;/td>
&lt;td>~3–6×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Reasoning&lt;/td>
&lt;td>&lt;strong>~25×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Image + text&lt;/td>
&lt;td>1.1–5.2×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Video + text&lt;/td>
&lt;td>1.3–15.0×&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;hr>
&lt;h2 id="effect-of-quantisation-on-energy-per-token">Effect of quantisation on energy per token&lt;/h2>
&lt;p>Data on NVIDIA H100 hardware, Llama 3 family (arXiv 2508.16712 and arXiv 2504.03360):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Precision&lt;/th>
&lt;th>Energy reduction vs FP16&lt;/th>
&lt;th>Condition&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>FP16&lt;/td>
&lt;td>reference (0 %)&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>BF16&lt;/td>
&lt;td>~0 % (iso-energy)&lt;/td>
&lt;td>Same hardware and engine&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>FP8&lt;/td>
&lt;td>−25 to −35 %&lt;/td>
&lt;td>H100/H200 with native hardware support&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>INT8&lt;/td>
&lt;td>−23 to −44 % (median ~39 %)&lt;/td>
&lt;td>Depends on batch size; more at low batches&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>INT4 (AWQ / GPTQ)&lt;/td>
&lt;td>−50 to −79 %&lt;/td>
&lt;td>Requires hardware with efficient low-precision support&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;p>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.&lt;/p>
&lt;div class="diagram" style="max-width:760px;margin:1rem auto;">
&lt;svg viewBox="0 0 760 180" role="img" aria-label="Reduction in J per token by precision: FP16 reference, FP8 minus 30 percent, INT8 minus 40 percent, INT4 minus 70 percent, with a warning about dequantisation overhead if the hardware has no native support" xmlns="http://www.w3.org/2000/svg">
&lt;style>.ax{fill:none;stroke:currentColor;stroke-width:1}.br{fill:none;stroke:currentColor;stroke-width:1.3}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}.lbl{font:bold 11px sans-serif;fill:currentColor}&lt;/style>
&lt;line class="ax" x1="60" y1="20" x2="60" y2="140"/>
&lt;line class="ax" x1="60" y1="140" x2="720" y2="140"/>
&lt;text x="10" y="85" class="ts" transform="rotate(-90 10 85)">Relative J/token&lt;/text>
&lt;rect class="br" x="80" y="30" width="110" height="110"/>
&lt;text x="88" y="155" class="ts">FP16&lt;/text>
&lt;text x="100" y="80" class="lbl">100 %&lt;/text>
&lt;rect class="br" x="230" y="63" width="110" height="77"/>
&lt;text x="238" y="155" class="ts">FP8&lt;/text>
&lt;text x="248" y="108" class="lbl">~70 %&lt;/text>
&lt;rect class="br" x="380" y="74" width="110" height="66"/>
&lt;text x="388" y="155" class="ts">INT8&lt;/text>
&lt;text x="398" y="112" class="lbl">~61 %&lt;/text>
&lt;rect class="br" x="530" y="97" width="110" height="43"/>
&lt;text x="538" y="155" class="ts">INT4&lt;/text>
&lt;text x="548" y="122" class="lbl">~30 %&lt;/text>
&lt;text x="60" y="170" class="ts">Hardware: H100 SXM with native support. Without it, INT4 can be iso-energetic or worse than FP16.&lt;/text>
&lt;/svg>
&lt;/div>
&lt;hr>
&lt;h2 id="effect-of-the-inference-engine">Effect of the inference engine&lt;/h2>
&lt;p>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):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Engine&lt;/th>
&lt;th>Relative J/token vs Transformers baseline&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Transformers (naive, not optimised)&lt;/td>
&lt;td>1.0× (reference)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>vLLM (PagedAttention, continuous batching)&lt;/td>
&lt;td>−25 to −35 %&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TensorRT-LLM (optimised NVIDIA kernels, FP8)&lt;/td>
&lt;td>−35 to −45 %&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>llama.cpp (hybrid CPU/GPU, INT4)&lt;/td>
&lt;td>Variable; −30 to −60 % depending on hardware&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;hr>
&lt;h2 id="limits-of-energy-leaderboards">Limits of energy leaderboards&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Limit&lt;/th>
&lt;th>Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Hardware dependence&lt;/strong>&lt;/td>
&lt;td>A 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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Engine dependence&lt;/strong>&lt;/td>
&lt;td>The 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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Artificial batch size&lt;/strong>&lt;/td>
&lt;td>AI 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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Training not captured&lt;/strong>&lt;/td>
&lt;td>All 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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Incompatibility between leaderboards&lt;/strong>&lt;/td>
&lt;td>Wh/query, J/token and samples/J measure different things. Converting between them requires knowing the mean output length, which varies by task and dataset.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Partial system coverage&lt;/strong>&lt;/td>
&lt;td>AI 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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Data latency&lt;/strong>&lt;/td>
&lt;td>The leaderboards publish results months after the tests. New hardware (H200, B100, B200) may have no data available at the time of the decision.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>No PUE&lt;/strong>&lt;/td>
&lt;td>None of the three includes datacenter PUE. For real TCO, the leaderboard J/token must be multiplied by your own PUE.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="decision-table-choosing-a-model-on-energy-efficiency">Decision table: choosing a model on energy efficiency&lt;/h2>
&lt;p>The selection criteria in order, without recommendation prose:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Criterion&lt;/th>
&lt;th>Question&lt;/th>
&lt;th>Action&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Task with reasoning&lt;/strong>&lt;/td>
&lt;td>Does the task require step-by-step reasoning?&lt;/td>
&lt;td>Yes → multiply the model&amp;rsquo;s base energy by ×30–700 before comparing. If there is a non-reasoning alternative with sufficient quality, prefer it.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Size vs minimum quality&lt;/strong>&lt;/td>
&lt;td>What is the minimum acceptable quality for the task?&lt;/td>
&lt;td>Consult quality benchmarks (see &lt;a href="https://blog.lo0.es/en/posts/llm-quality-benchmarks-contamination-trap-oss-tools/">B7&lt;/a> when available). Pick the smallest model that clears the quality threshold; energy grows sublinearly with size.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Dense vs MoE&lt;/strong>&lt;/td>
&lt;td>Does the hardware have enough memory for the full MoE?&lt;/td>
&lt;td>If yes: the active-equivalent MoE consumes ~3× fewer J/token than the equivalent dense model. If not: paging or offload eats the gain.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Precision&lt;/strong>&lt;/td>
&lt;td>Does the hardware have native FP8/INT4 support?&lt;/td>
&lt;td>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.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Inference engine&lt;/strong>&lt;/td>
&lt;td>Is the optimal engine for the hardware being used?&lt;/td>
&lt;td>Measure with &lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">C3&lt;/a>. If the engine is not optimised, changing engine can cut energy more than changing model.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Consult the leaderboard&lt;/strong>&lt;/td>
&lt;td>Is the task covered by AI Energy Score or ML.ENERGY?&lt;/td>
&lt;td>Filter by: same task, same hardware class, reasoning explicitly off/on. Do not compare models from different hardware classes or different engines.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Validate on your own hardware&lt;/strong>&lt;/td>
&lt;td>Are the leaderboard results on the same HW as yours?&lt;/td>
&lt;td>Always validate with Zeus or DCGM on your own hardware before taking the final decision. The leaderboard is a reference, not a prediction.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Quick signals table:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Signal&lt;/th>
&lt;th>Effect on energy&lt;/th>
&lt;th>Data source&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Switching reasoning on&lt;/td>
&lt;td>×30–700&lt;/td>
&lt;td>AI Energy Score v2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Going from dense 8B to dense 70B&lt;/td>
&lt;td>~×3.5&lt;/td>
&lt;td>ML.ENERGY Leaderboard v3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Going from dense 8B to active-equivalent 8B MoE&lt;/td>
&lt;td>~×0.33 (−67 %)&lt;/td>
&lt;td>ML.ENERGY v3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>FP16 → INT4 (compatible hardware)&lt;/td>
&lt;td>−50 to −79 %&lt;/td>
&lt;td>arXiv 2508.16712, 2504.03360&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Naive Transformers → TensorRT-LLM FP8&lt;/td>
&lt;td>−35 to −45 %&lt;/td>
&lt;td>TokenPowerBench, ML.ENERGY&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PUE 1.0 → PUE 1.5&lt;/td>
&lt;td>+50 % on real datacenter energy&lt;/td>
&lt;td>MLPerf Power (scope)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="reference-data-energy-in-a-generic-node-4h100-sxm">Reference data: energy in a generic node (4×H100 SXM)&lt;/h2>
&lt;p>Generic example hardware, to anchor the leaderboard values to a real node:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Parameter&lt;/th>
&lt;th>Indicative value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>TDP 4×H100 SXM 80 GB&lt;/td>
&lt;td>4 × 700 W = 2,800 W (GPU only)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Complete-node system power (at the wall)&lt;/td>
&lt;td>~3,500–5,000 W depending on load&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Non-GPU overhead over GPU&lt;/td>
&lt;td>25–45 %&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>J/token Llama 3 70B FP16, vLLM, batch 8&lt;/td>
&lt;td>~1–3 J/tok (indicative, A100/H100)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>J/token Llama 3 8B FP16, vLLM, batch 8&lt;/td>
&lt;td>~0.3–0.7 J/tok (indicative)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>J/token Mixtral 8×7B FP16, vLLM, batch 8&lt;/td>
&lt;td>~0.4–0.8 J/tok (indicative)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Energy per 1M tokens (Llama 3 70B, PUE 1.4)&lt;/td>
&lt;td>~0.5–1.2 kWh&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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 (&lt;a href="https://mlcommons.org/benchmarks/inference-datacenter/">mlcommons.org&lt;/a>).&lt;/p>
&lt;p>For the alternative reference node (4×A100 PCIe 80 GB, TDP ~300 W each):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Parameter&lt;/th>
&lt;th>Indicative value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>TDP 4×A100 PCIe&lt;/td>
&lt;td>4 × 300 W = 1,200 W (GPU only)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Complete-node system power&lt;/td>
&lt;td>~1,500–2,000 W&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>J/token Llama 3 70B FP16, vLLM&lt;/td>
&lt;td>~2–5 J/tok (indicative; higher because of lower HBM bandwidth vs SXM)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="how-to-use-the-leaderboards-in-practice">How to use the leaderboards in practice&lt;/h2>
&lt;p>A decision flow based on the public data available:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Step&lt;/th>
&lt;th>Action&lt;/th>
&lt;th>Resource&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1&lt;/td>
&lt;td>Identify the dominant task of the workload&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2&lt;/td>
&lt;td>Consult AI Energy Score filtered by task and hardware class&lt;/td>
&lt;td>huggingface.co/spaces/AIEnergyScore/Leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>3&lt;/td>
&lt;td>Note the models with ⭐⭐⭐⭐ or ⭐⭐⭐⭐⭐ on the task&lt;/td>
&lt;td>Wh/1k-queries as a relative reference&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4&lt;/td>
&lt;td>Cross-check with ML.ENERGY for the J/token of each candidate&lt;/td>
&lt;td>ml.energy/leaderboard&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>5&lt;/td>
&lt;td>If any model is in MLPerf Power (Llama 2, GPT-J, Mixtral), consult the certified samples/J&lt;/td>
&lt;td>mlcommons.org/benchmarks/inference-datacenter/&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>6&lt;/td>
&lt;td>Select the 2–3 candidates with the best energy/quality ratio&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>7&lt;/td>
&lt;td>Measure on your own hardware with Zeus or DCGM&lt;/td>
&lt;td>github.com/ml-energy/zeus&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>Multiply the measured J/token by the datacenter PUE&lt;/td>
&lt;td>J/token × PUE = effective J/token in the datacenter&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>9&lt;/td>
&lt;td>Work out the electricity cost per token at the contracted price&lt;/td>
&lt;td>See &lt;a href="https://blog.lo0.es/en/posts/energy-per-token-spain-methodology-electricity-market-speculation/">C2&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="see-also">See also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/ai-energy-benchmarking-frameworks-metrics-state-of-the-art/">C1 — Energy benchmarking of LLM frameworks: state of the art&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/energy-per-token-spain-methodology-electricity-market-speculation/">C2 — Energy per token: methodology and the electricity market&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">C3 — Measurement tooling in deployment: accuracy and overhead&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/mlperf-power-energy-efficiency-benchmark/">C4 — MLPerf Power: the certified standard benchmark&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/quantization-llm-inference-fp8-int4-gguf/">Fundamentals of quantisation for inference&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>Hugging Face · AI Energy Score · organización y leaderboard — &lt;a href="https://huggingface.co/AIEnergyScore">https://huggingface.co/AIEnergyScore&lt;/a>&lt;/li>
&lt;li>Hugging Face · Announcing AI Energy Score Ratings (Luccioni et al., feb. 2025) — &lt;a href="https://huggingface.co/blog/sasha/announcing-ai-energy-score">https://huggingface.co/blog/sasha/announcing-ai-energy-score&lt;/a>&lt;/li>
&lt;li>Hugging Face · AI Energy Score v2: Refreshed Leaderboard, now with Reasoning (Luccioni, Gamazaychikov, dic. 2025) — &lt;a href="https://huggingface.co/blog/sasha/ai-energy-score-v2">https://huggingface.co/blog/sasha/ai-energy-score-v2&lt;/a>&lt;/li>
&lt;li>Hugging Face · AIEnergyScore GitHub (Apache 2.0) — &lt;a href="https://github.com/huggingface/AIEnergyScore">https://github.com/huggingface/AIEnergyScore&lt;/a>&lt;/li>
&lt;li>ML.ENERGY Initiative · Leaderboard — &lt;a href="https://ml.energy/leaderboard">https://ml.energy/leaderboard&lt;/a>&lt;/li>
&lt;li>ML.ENERGY Initiative · Blog: Diagnosing Inference Energy Consumption with the ML.ENERGY Leaderboard v3.0 (dic. 2025) — &lt;a href="https://ml.energy/blog/measurement/energy/diagnosing-inference-energy-consumption-with-the-mlenergy-leaderboard-v30/">https://ml.energy/blog/measurement/energy/diagnosing-inference-energy-consumption-with-the-mlenergy-leaderboard-v30/&lt;/a>&lt;/li>
&lt;li>arXiv 2505.06371 · The ML.ENERGY Benchmark: Toward Automated Inference Energy Measurement and Optimization (Chung et al., NeurIPS 2025 D&amp;amp;B Spotlight) — &lt;a href="https://arxiv.org/abs/2505.06371">https://arxiv.org/abs/2505.06371&lt;/a>&lt;/li>
&lt;li>ML.ENERGY Initiative · Zeus: Deep Learning Energy Measurement and Optimization — &lt;a href="https://ml.energy/zeus/">https://ml.energy/zeus/&lt;/a>&lt;/li>
&lt;li>GitHub ml-energy/zeus (MIT) — &lt;a href="https://github.com/ml-energy/zeus">https://github.com/ml-energy/zeus&lt;/a>&lt;/li>
&lt;li>PyTorch Blog · Zeus: Deep Learning Energy Measurement and Optimization — &lt;a href="https://pytorch.org/blog/zeus/">https://pytorch.org/blog/zeus/&lt;/a>&lt;/li>
&lt;li>University of Michigan CSE · Power-hungry AI: Researchers evaluate energy consumption across models — &lt;a href="https://cse.engin.umich.edu/stories/power-hungry-ai-researchers-evaluate-energy-consumption-across-models">https://cse.engin.umich.edu/stories/power-hungry-ai-researchers-evaluate-energy-consumption-across-models&lt;/a>&lt;/li>
&lt;li>arXiv 2512.03024 · TokenPowerBench: Benchmarking the Power Consumption of LLM Inference (dic. 2024) — &lt;a href="https://arxiv.org/abs/2512.03024">https://arxiv.org/abs/2512.03024&lt;/a>&lt;/li>
&lt;li>arXiv 2508.16712 · Systematic Characterization of LLM Quantization: A Performance, Energy, and Quality Perspective — &lt;a href="https://arxiv.org/abs/2508.16712">https://arxiv.org/abs/2508.16712&lt;/a>&lt;/li>
&lt;li>arXiv 2504.03360 · Sustainable LLM Inference for Edge AI: Evaluating Quantized LLMs for Energy Efficiency, Output Accuracy, and Inference Latency — &lt;a href="https://arxiv.org/abs/2504.03360">https://arxiv.org/abs/2504.03360&lt;/a>&lt;/li>
&lt;li>Epoch AI · AI Energy Use: Data &amp;amp; Research — &lt;a href="https://epoch.ai/topics/energy">https://epoch.ai/topics/energy&lt;/a>&lt;/li>
&lt;li>MLCommons · MLPerf Inference Datacenter benchmark results — &lt;a href="https://mlcommons.org/benchmarks/inference-datacenter/">https://mlcommons.org/benchmarks/inference-datacenter/&lt;/a>&lt;/li>
&lt;li>arXiv 2410.12032 · MLPerf Power: Benchmarking the Energy Efficiency of Machine Learning Systems (Tschand et al., 2024) — &lt;a href="https://arxiv.org/abs/2410.12032">https://arxiv.org/abs/2410.12032&lt;/a>&lt;/li>
&lt;li>Coalition for Sustainable AI · AI Energy Score as best practice in benchmarking — &lt;a href="https://www.sustainableaicoalition.org/ai-energy-score-a-standardized-approach-to-evaluating-ai-model-energy-efficiency/">https://www.sustainableaicoalition.org/ai-energy-score-a-standardized-approach-to-evaluating-ai-model-energy-efficiency/&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>MLPerf Power: the standard energy-efficiency benchmark for on-premise ML systems</title><link>https://blog.lo0.es/en/posts/mlperf-power-energy-efficiency-benchmark/</link><pubDate>Mon, 15 Jun 2026 06:00:00 +0200</pubDate><guid>https://blog.lo0.es/en/posts/mlperf-power-energy-efficiency-benchmark/</guid><description>&lt;blockquote>
&lt;p>Notation: amounts in &lt;strong>euros (N €)&lt;/strong>, decimals with a point. The dollar sign is not used
(on this site it is a formula delimiter).&lt;/p>
&lt;/blockquote>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>MLPerf Power is the only standardised benchmark for measuring the energy efficiency of complete ML systems. It is run by the MLCommons Power Working Group and backed by more than 20 organisations. It measures power at the wall (AC wall power) for the whole System Under Test, GPUs, CPUs, memory, interconnect and fans included, with a SPEC PTDaemon certified power analyser (Yokogawa WT310/WT5000) and the public tooling in &lt;code>mlcommons/power-dev&lt;/code>. The central metric for datacenter inference is samples/joule (or tokens/joule for LLMs); for latency, energy per stream. The public corpus adds up to 1,841 reproducible measurements from 60 systems (590 datacenter, 792 edge, 447 tiny, 12 training). GPT-J and Llama 2 show improvements of more than 100× in samples/joule between the first and the latest available rounds. The direct comparison with the software-based measurement of post C3 (DCGM/NVML/RAPL/Kepler) shows that MLPerf Power offers maximum accuracy and reproducibility at the cost of dedicated hardware (~3,000 USD for the Yokogawa 310E) and of the requirement to be an MLCommons member to access PTDaemon; software measurement is continuous, needs no extra hardware, but carries a wider error bar and no external validation.&lt;/p>
&lt;hr>
&lt;h2 id="what-mlperf-power-is-and-how-it-fits-into-the-mlcommons-ecosystem">What MLPerf Power is and how it fits into the MLCommons ecosystem&lt;/h2>
&lt;p>MLCommons is the consortium of more than 100 organisations (NVIDIA, Google, Intel, Dell, AMD, Meta and others) that maintains the MLPerf benchmarks: Training, Inference (Datacenter and Edge), Tiny, HPC, Storage, Client and Automotive. The Power Working Group is the specific group that extends each of those benchmarks by adding the energy dimension (&lt;a href="https://mlcommons.org/working-groups/benchmarks/power/">MLCommons Power Working Group&lt;/a>).&lt;/p>
&lt;p>MLPerf Power is not a standalone benchmark: it is an energy measurement layer overlaid on the existing performance benchmarks. For a submission to be valid with power, it must first satisfy the performance rules (MLPerf Inference, Training or Tiny) and then the additional power measurement rules.&lt;/p>
&lt;h3 id="coupling-with-mlperf-inference">Coupling with MLPerf Inference&lt;/h3>
&lt;p>The integration most relevant to on-premise inference is with MLPerf Inference Datacenter, which defines:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Scenarios&lt;/strong>: &lt;code>Server&lt;/code> (latency, queries per second with a request queue) and &lt;code>Offline&lt;/code> (pure throughput, batch with no latency constraint). Power is measured in both.&lt;/li>
&lt;li>&lt;strong>Benchmarks&lt;/strong>: ResNet-50, BERT, RNN-T, 3D-UNET, RetinaNet, DLRM, GPT-J 6B, Llama 2 70B (from v4.0), Mixtral 8×7B (from v5.0).&lt;/li>
&lt;li>&lt;strong>Divisions&lt;/strong>: &lt;code>closed&lt;/code> (model and preprocessing fixed, only runtime optimisation allowed) and &lt;code>open&lt;/code> (modifications to the model permitted).&lt;/li>
&lt;/ul>
&lt;p>Power is measured during the performance phase, not during accuracy or compliance. The same run that produces the performance log produces the power log: reporting the highest performance of three runs and the lowest power of another three is forbidden (&lt;a href="https://github.com/mlcommons/inference_policies/blob/master/power_measurement.adoc">MLPerf Inference Power Measurement Rules, §5.9&lt;/a>).&lt;/p>
&lt;h3 id="coupling-with-mlperf-training-and-tiny">Coupling with MLPerf Training and Tiny&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>MLPerf Training&lt;/strong>: large-scale power measurement (multi-node, 10K+ GPUs) does not use an external analyser, which would be impracticable. Node telemetry (IPMI/Redfish) plus an estimate for the interconnect network is used instead. The metric is energy to train (J or kWh). In the v4.0 submissions with power, the systems running Llama 2 70B Training range from single nodes to hundreds, revealing the non-linear scaling of energy (&lt;a href="https://arxiv.org/abs/2410.12032">arXiv 2410.12032&lt;/a>).&lt;/li>
&lt;li>&lt;strong>MLPerf Tiny&lt;/strong>: microcontroller systems (from 5.64 mW). Specialised micro-power instrumentation is used, with hardware pins to demarcate the start and end of the inference. The metric is energy per inference (J), not samples/joule.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="measurement-methodology-certified-wall-power">Measurement methodology: certified wall power&lt;/h2>
&lt;h3 id="the-fundamental-principle-the-whole-sut-at-the-wall">The fundamental principle: the whole SUT, at the wall&lt;/h3>
&lt;p>Rule number one is absolute: power must be measured at system level, that is, including every component the benchmark activates: host processors, accelerators, memory, disks, fans, internal interconnect. Measuring the GPUs alone is not enough (&lt;a href="https://github.com/mlcommons/inference_policies/blob/master/power_measurement.adoc">MLPerf Inference Power Measurement Rules, §5.1&lt;/a>):&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;The power consumption must be measured at the system level, i.e. including all components that are sensitized by LoadGen e.g. the host processor on which LoadGen runs, accelerators, memory, fans, etc.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>Power is measured in AC (alternating current), at the SUT input, upstream of the PSUs. Any battery or energy storage between the mains socket and the system PSUs is forbidden.&lt;/p>
&lt;h3 id="measurement-hardware-spec-certified-power-analyser">Measurement hardware: SPEC-certified power analyser&lt;/h3>
&lt;p>MLPerf Power requires a power analyser certified by SPEC PTDaemon (&lt;a href="https://open.spec.org/power/docs/specpower-device_list/">official SPEC list&lt;/a>). The most widespread in submissions is the Yokogawa WT310E (~3,000 USD), which connects to the director over USB (Linux) or Ethernet/serial (Windows). Voltage is measured in parallel and current in series with the SUT power line.&lt;/p>
&lt;p>Relevant specifications of the Yokogawa WT310E:&lt;/p>
&lt;ul>
&lt;li>Power accuracy: 0.1 % of reading + 0.1 % of range&lt;/li>
&lt;li>Measurement range: µW to MW (the WT5000 reaches industrial installations)&lt;/li>
&lt;li>Update rate: from 50 ms&lt;/li>
&lt;/ul>
&lt;p>For systems with more than one channel, or multi-PSU nodes, multi-analyser configurations are allowed. The ranging rule: first a ranging run is performed with the range in &lt;code>Auto&lt;/code> mode to determine the maximum current and voltage values; the testing runs use fixed ranges based on those peaks, which maximises accuracy within the range. &lt;code>Auto&lt;/code> mode is not permitted in the testing runs.&lt;/p>
&lt;h3 id="spec-ptdaemon-the-daemon-that-orchestrates-the-measurement">SPEC PTDaemon: the daemon that orchestrates the measurement&lt;/h3>
&lt;p>PTDaemon (Power Thermal Daemon) is the SPEC tool that handles communication with the analyser. MLCommons is licensed to use it within the MLPerf Power flow. Access requires MLCommons membership and signing the corresponding EULA (&lt;a href="https://github.com/mlcommons/inference_policies/blob/master/power_measurement.adoc#frequently-asked-questions-faq">MLPerf Power FAQ&lt;/a>).&lt;/p>
&lt;p>The measurement flow is as follows:&lt;/p>
&lt;div class="diagram" style="max-width:760px;margin:1rem auto;">
&lt;svg viewBox="0 0 760 230" role="img" aria-label="MLPerf Power measurement flow: Director with PTDaemon connected to the Yokogawa analyser, which feeds the SUT; a client on the SUT synchronises timestamps over NTP" xmlns="http://www.w3.org/2000/svg">
&lt;style>.bx{fill:none;stroke:currentColor;stroke-width:1.3}.dsh{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:5 3}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}.ar{fill:none;stroke:currentColor;stroke-width:1.3;marker-end:url(#am)}&lt;/style>
&lt;defs>&lt;marker id="am" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">&lt;path d="M0,0 L10,5 L0,10 z" fill="currentColor"/>&lt;/marker>&lt;/defs>
&lt;rect class="bx" x="20" y="40" width="200" height="64" rx="6"/>
&lt;text x="32" y="62" class="tl">Director (PC)&lt;/text>
&lt;text x="32" y="78" class="ts">server.py + PTDaemon&lt;/text>
&lt;text x="32" y="94" class="ts">NTP sync → CSV logs&lt;/text>
&lt;path class="ar" d="M220,72 L280,72"/>
&lt;rect class="bx" x="280" y="40" width="160" height="64" rx="6"/>
&lt;text x="292" y="62" class="tl">Analyser&lt;/text>
&lt;text x="292" y="78" class="ts">Yokogawa WT310E&lt;/text>
&lt;text x="292" y="94" class="ts">AC wall power&lt;/text>
&lt;path class="ar" d="M440,72 L500,72"/>
&lt;rect class="bx" x="500" y="20" width="240" height="104" rx="6"/>
&lt;text x="512" y="42" class="tl">SUT (System Under Test)&lt;/text>
&lt;text x="512" y="58" class="ts">client.py + LoadGen&lt;/text>
&lt;text x="512" y="74" class="ts">4×H100 SXM + CPU + RAM&lt;/text>
&lt;text x="512" y="90" class="ts">fans + interconnect&lt;/text>
&lt;text x="512" y="106" class="ts">→ performance log + timestamps&lt;/text>
&lt;line class="dsh" x1="360" y1="130" x2="360" y2="190"/>
&lt;text x="280" y="155" class="ts">current in series&lt;/text>
&lt;text x="280" y="170" class="ts">voltage in parallel&lt;/text>
&lt;text x="20" y="215" class="ts">The analyser measures AC at the SUT input. Director and SUT sync over NTP. Power log and performance log are aligned by timestamp to compute the final metric.&lt;/text>
&lt;/svg>
&lt;/div>
&lt;p>The process step by step (&lt;a href="https://github.com/mlcommons/power-dev">&lt;code>mlcommons/power-dev&lt;/code>&lt;/a>):&lt;/p>
&lt;ol>
&lt;li>&lt;strong>NTP sync&lt;/strong> between Director and SUT to align timestamps.&lt;/li>
&lt;li>&lt;strong>Ranging run&lt;/strong>: power with ranges in &lt;code>Auto&lt;/code>; the analyser determines the current and voltage peaks.&lt;/li>
&lt;li>&lt;strong>Testing run&lt;/strong>: fixed ranges; LoadGen runs the benchmark; the Director records power with timestamps; the SUT records the performance log with start/end timestamps of the execution phase.&lt;/li>
&lt;li>&lt;strong>Post-processing&lt;/strong>: the result summariser cross-references power log and performance log by timestamp to compute the mean power over the execution window.&lt;/li>
&lt;li>&lt;strong>A minimum of 60 seconds&lt;/strong> of valid power data. If the workload finishes before 60 s, it is run in a loop until that threshold is reached.&lt;/li>
&lt;/ol>
&lt;h3 id="what-is-and-is-not-inside-the-sut">What is and is not inside the SUT&lt;/h3>
&lt;p>The SUT includes everything the benchmark activates:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Inside the SUT&lt;/th>
&lt;th>Outside the SUT&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>GPUs / accelerators&lt;/td>
&lt;td>PDU shared with other systems&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Host CPU and RAM&lt;/td>
&lt;td>Datacenter cooling infrastructure (PUE)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Disks / NVMe if the benchmark uses them&lt;/td>
&lt;td>Management network (BMC, out of band)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Node fans and cooling systems&lt;/td>
&lt;td>Datacenter network switches (not the node&amp;rsquo;s)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Internal interconnect (NVLink, PCIe)&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Node PSUs&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The paper makes it explicit: PUE is out of scope for MLPerf Power by design (&lt;a href="https://arxiv.org/abs/2410.12032">arXiv 2410.12032, §III-C&lt;/a>). MLPerf measures the efficiency of the ML system, not that of the datacenter. Including PUE would obscure the differences between systems by mixing hardware efficiency with building efficiency.&lt;/p>
&lt;hr>
&lt;h2 id="metrics-formulas-and-definitions">Metrics: formulas and definitions&lt;/h2>
&lt;h3 id="throughput-benchmarks-datacenter--offline--edge">Throughput benchmarks (Datacenter / Offline / Edge)&lt;/h3>
&lt;p>For throughput benchmarks, Offline and Server in datacenter plus some edge scenarios, the energy efficiency metric is:&lt;/p>
$$\eta = \frac{\text{throughput (samples/s)}}{\text{mean power (W)}} \quad \Rightarrow \quad \left[\frac{\text{samples}}{\text{J}}\right]$$
&lt;p>where mean power is computed over the window of the execution phase of the performance run. The reciprocal gives energy per sample:&lt;/p>
$$E_{\text{sample}} = \frac{\text{mean power (W)}}{\text{throughput (samples/s)}} \quad \left[\text{J/sample}\right]$$
&lt;p>For LLM benchmarks (GPT-J, Llama 2), where the output varies in length, a &amp;ldquo;sample&amp;rdquo; is one complete query (prompt + response). Energy per output token is obtained by dividing by the number of tokens generated, which varies per query and must be reported or estimated.&lt;/p>
&lt;h3 id="latency-benchmarks-single-stream--tiny">Latency benchmarks (Single Stream / Tiny)&lt;/h3>
&lt;p>For latency benchmarks, Single Stream in edge and tiny, where the processing time is fixed, the metric is the inverse of energy per inference:&lt;/p>
$$\eta_{\text{latency}} = \frac{1}{E_{\text{inference}}} \quad \left[\frac{1}{\text{J}}\right]$$
&lt;p>The paper treats both metrics (samples/J and 1/J) as comparable within their category, although they are not interchangeable between categories.&lt;/p>
&lt;h3 id="system-power-and-run-energy">System power and run energy&lt;/h3>
&lt;p>The three quantities that appear in every power submission:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Quantity&lt;/th>
&lt;th>Definition&lt;/th>
&lt;th>Unit&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>System power&lt;/strong>&lt;/td>
&lt;td>mean of the AC power samples over the execution window&lt;/td>
&lt;td>W&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Run energy&lt;/strong>&lt;/td>
&lt;td>mean power × window duration&lt;/td>
&lt;td>J&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Energy efficiency&lt;/strong>&lt;/td>
&lt;td>throughput / system power = samples/J&lt;/td>
&lt;td>samples/J&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The run energy formula:&lt;/p>
$$E_{\text{run}} = \bar{P} \times \Delta t = \frac{\sum_{i} P_i \cdot \Delta t_i}{\Delta t_{\text{total}}} \times \Delta t_{\text{total}} \quad [\text{J}]$$
&lt;p>where \( P_i \) are the analyser samples and \( \Delta t_i \) the intervals between samples, both inside the window demarcated by the LoadGen timestamps.&lt;/p>
&lt;hr>
&lt;h2 id="how-to-read-an-mlperf-power-submission">How to read an MLPerf Power submission&lt;/h2>
&lt;h3 id="divisions-and-availability-categories">Divisions and availability categories&lt;/h3>
&lt;p>Submissions inherit the divisions of MLPerf Inference:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Division&lt;/th>
&lt;th>Constraints&lt;/th>
&lt;th>Comparability&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Closed&lt;/strong>&lt;/td>
&lt;td>Fixed model, fixed preprocessing, only the runtime and the hardware are optimised&lt;/td>
&lt;td>High: submissions directly comparable with each other&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Open&lt;/strong>&lt;/td>
&lt;td>Modifications to the model allowed (aggressive quantisation, distillation, pruning)&lt;/td>
&lt;td>Low: each system may use a different model&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Within closed, there are system availability categories:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Category&lt;/th>
&lt;th>Definition&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Available&lt;/strong>&lt;/td>
&lt;td>System commercially available at the closing date&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Preview&lt;/strong>&lt;/td>
&lt;td>Announced but not commercially available&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>RDI&lt;/strong> (Research, Development, Internal)&lt;/td>
&lt;td>Systems for internal or experimental use&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Only Available systems in closed are comparable without caveats. A Preview system with better energy than an Available one from another company is not a valid comparison for purchasing decisions.&lt;/p>
&lt;h3 id="what-comparability-mlperf-power-gives-and-what-it-does-not">What comparability MLPerf Power gives and what it does not&lt;/h3>
&lt;p>It gives:&lt;/p>
&lt;ul>
&lt;li>An objective comparison of the energy efficiency of complete nodes (not just the GPU) under a standardised ML workload.&lt;/li>
&lt;li>Verified reproducibility: the logs are published on GitHub and anyone can review them.&lt;/li>
&lt;li>Trends over time between rounds: how much the efficiency of each hardware family improves version to version.&lt;/li>
&lt;li>A basis for comparing heterogeneous systems running the same workload under the same rules.&lt;/li>
&lt;/ul>
&lt;p>It does not give:&lt;/p>
&lt;ul>
&lt;li>An isolated GPU-to-GPU comparison (it measures the complete node, not the card alone).&lt;/li>
&lt;li>Broad hardware coverage: the number of submissions with power is small. In v4.0 only four companies (Dell, Fujitsu, NVIDIA, Qualcomm) delivered power numbers for datacenter. In v5.1 there were two power submissions (Lenovo datacenter + GATEOverflow edge).&lt;/li>
&lt;li>Representativeness of your own workloads: the benchmarks are fixed and may not match the distribution of your real load (batch size, prompt length, prefill/decode ratio).&lt;/li>
&lt;li>Datacenter cooling data: PUE, liquid vs air, are out of scope.&lt;/li>
&lt;li>Real-time comparison: results are published months after the closing date.&lt;/li>
&lt;/ul>
&lt;h3 id="structure-of-a-submission">Structure of a submission&lt;/h3>
&lt;p>Every power submission publishes the following in the MLCommons results repository:&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;division&amp;gt;/&amp;lt;submitter&amp;gt;/measurements/&amp;lt;system&amp;gt;/
├── analyzer_table.md # Analyser configuration (model, ranges)
├── power_settings.md # Power management configuration of the SUT
results/&amp;lt;system&amp;gt;/&amp;lt;benchmark&amp;gt;/&amp;lt;scenario&amp;gt;/
├── mlperf_log_summary.txt # Performance results (LoadGen)
├── spl.txt # Power log (power, current, voltage, timestamps)
└── ...
&lt;/code>&lt;/pre>&lt;p>The &lt;code>spl.txt&lt;/code> files contain the raw analyser readings with timestamps, which makes it possible to verify alignment with the LoadGen window.&lt;/p>
&lt;hr>
&lt;h2 id="data-scale-trends-and-reference-hardware">Data: scale, trends and reference hardware&lt;/h2>
&lt;h3 id="the-corpus-1841-measurements-from-60-systems">The corpus: 1,841 measurements from 60 systems&lt;/h3>
&lt;p>The MLPerf Power submissions database covers (&lt;a href="https://arxiv.org/abs/2410.12032">arXiv 2410.12032&lt;/a>):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Category&lt;/th>
&lt;th>Submissions&lt;/th>
&lt;th>Power range&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Datacenter (Inference)&lt;/td>
&lt;td>590&lt;/td>
&lt;td>~200 W – ~10 kW per node&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Edge (Inference)&lt;/td>
&lt;td>792&lt;/td>
&lt;td>~10 W – several kW&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tiny (Inference)&lt;/td>
&lt;td>447&lt;/td>
&lt;td>&lt;strong>5.64 mW&lt;/strong> – hundreds of mW&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Training / HPC&lt;/td>
&lt;td>12&lt;/td>
&lt;td>up to &lt;strong>500 kW&lt;/strong> (measured); ~10 MW estimated in HPC&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The total range runs from microwatts to megawatts, 9 orders of magnitude, which means no single methodology applies across every segment.&lt;/p>
&lt;h3 id="energy-efficiency-improvements-llms-lead">Energy efficiency improvements: LLMs lead&lt;/h3>
&lt;p>The evolution of the samples/joule metric between rounds, normalised to the first submission of each model (&lt;a href="https://arxiv.org/abs/2410.12032">arXiv 2410.12032, §V-A&lt;/a>):&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Workload&lt;/th>
&lt;th>Category&lt;/th>
&lt;th>Cumulative improvement (samples/J)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>GPT-J 6B&lt;/td>
&lt;td>Datacenter&lt;/td>
&lt;td>&lt;strong>&amp;gt;100×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Llama 2 70B&lt;/td>
&lt;td>Datacenter&lt;/td>
&lt;td>&lt;strong>&amp;gt;100×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>RetinaNet&lt;/td>
&lt;td>Datacenter&lt;/td>
&lt;td>Largest among the classic models&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>BERT-99.0&lt;/td>
&lt;td>Edge&lt;/td>
&lt;td>~4×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>RNN-T&lt;/td>
&lt;td>Edge&lt;/td>
&lt;td>~4×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ResNet-50&lt;/td>
&lt;td>Edge&lt;/td>
&lt;td>~1.5×&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ResNet-50&lt;/td>
&lt;td>Tiny&lt;/td>
&lt;td>&lt;strong>&amp;gt;1,000×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Other Tiny&lt;/td>
&lt;td>Tiny&lt;/td>
&lt;td>79× – 596×&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The &amp;gt;100× improvements in datacenter LLMs reflect the massive industry attention on software optimisation (FP8 kernels, FlashAttention, speculation) and hardware (tensor core architectures, HBM3). Tiny models show even larger gains in relative terms thanks to the low starting point and the progress in specialised chips.&lt;/p>
&lt;h3 id="on-premise-reference-hardware">On-premise reference hardware&lt;/h3>
&lt;p>For a node of 4×H100 SXM 80 GB (the track&amp;rsquo;s generic hardware), the typical values in MLPerf Power:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Parameter&lt;/th>
&lt;th>Indicative value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Declared TDP 4×H100 SXM&lt;/td>
&lt;td>4 × 700 W = 2,800 W (GPU only)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>System power (complete node) measured at the wall&lt;/td>
&lt;td>~3,500 – 5,000 W depending on load&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CPU + RAM + fans overhead over GPU&lt;/td>
&lt;td>25 – 45 % of the total&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Efficiency: Llama 2 70B offline (closed)&lt;/td>
&lt;td>a function of the runtime; order of magnitude ~0.1 – 1 tokens/J&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The key point: the &amp;ldquo;node overhead&amp;rdquo;, the difference between what the analyser measures at the wall and what NVML reports for the GPUs, is 25–45 % of total consumption. A GPU-only measurement underestimates the real system consumption by that margin.&lt;/p>
&lt;p>For the A100 PCIe 80 GB (4× per node), system consumption is lower (GPU TDP ~300 W each, node ~1,500–2,000 W), with better efficiency per watt but lower absolute throughput. The L40S (4× per node) has an intermediate profile: TDP ~350 W each, good FP8 inference performance, node consumption ~1,800–2,500 W.&lt;/p>
&lt;hr>
&lt;h2 id="contrast-with-the-software-measurement-of-post-c3">Contrast with the software measurement of post C3&lt;/h2>
&lt;p>&lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">Post C3 of this track&lt;/a> covers the DCGM/NVML/RAPL/Kepler stack in production. Here is the data-driven comparison against MLPerf Power:&lt;/p>
&lt;div class="diagram" style="max-width:760px;margin:1rem auto;">
&lt;svg viewBox="0 0 760 190" role="img" aria-label="Comparison of two approaches: software measurement with DCGM/Kepler (continuous, no extra hardware, wider error bar, not certified) vs MLPerf Power with a physical analyser (point in time, dedicated hardware, maximum accuracy, certified)" xmlns="http://www.w3.org/2000/svg">
&lt;style>.bx{fill:none;stroke:currentColor;stroke-width:1.3}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}&lt;/style>
&lt;rect class="bx" x="20" y="30" width="340" height="130" rx="6"/>
&lt;text x="32" y="52" class="tl">Software measurement (C3)&lt;/text>
&lt;text x="32" y="70" class="ts">DCGM/NVML → GPU power (on-device)&lt;/text>
&lt;text x="32" y="86" class="ts">RAPL → CPU + DRAM (on-device)&lt;/text>
&lt;text x="32" y="102" class="ts">Kepler eBPF → per pod/MIG&lt;/text>
&lt;text x="32" y="118" class="ts">Continuous in production, no extra hardware&lt;/text>
&lt;text x="32" y="134" class="ts">Error bar: ±5–15 % vs power meter&lt;/text>
&lt;text x="32" y="150" class="ts">Not externally certified&lt;/text>
&lt;rect class="bx" x="400" y="30" width="340" height="130" rx="6"/>
&lt;text x="412" y="52" class="tl">MLPerf Power (C4)&lt;/text>
&lt;text x="412" y="70" class="ts">Yokogawa WT310E analyser (AC, at the wall)&lt;/text>
&lt;text x="412" y="86" class="ts">SPEC PTDaemon (SPEC certified)&lt;/text>
&lt;text x="412" y="102" class="ts">Measures the whole SUT as a system&lt;/text>
&lt;text x="412" y="118" class="ts">Only during the benchmark (not continuous)&lt;/text>
&lt;text x="412" y="134" class="ts">Accuracy: ±0.1 % reading + ±0.1 % range&lt;/text>
&lt;text x="412" y="150" class="ts">Externally certified and reproducible&lt;/text>
&lt;/svg>
&lt;/div>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Dimension&lt;/th>
&lt;th>Software (DCGM/NVML/RAPL/Kepler)&lt;/th>
&lt;th>MLPerf Power (analyser + PTDaemon)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>What it measures&lt;/strong>&lt;/td>
&lt;td>On-device sensors (GPU, CPU, DRAM)&lt;/td>
&lt;td>AC wall power (the whole node)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Coverage&lt;/strong>&lt;/td>
&lt;td>GPU + CPU + DRAM (≠ the wall)&lt;/td>
&lt;td>Complete node including fans, PSU overhead&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Node overhead&lt;/strong>&lt;/td>
&lt;td>Not captured by default&lt;/td>
&lt;td>Included in the measurement&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Accuracy&lt;/strong>&lt;/td>
&lt;td>±5–15 % vs power meter (Kepler estimate); NVML ~3–5 % on the GPU&lt;/td>
&lt;td>±0.1 % reading + ±0.1 % range (Yokogawa WT310E)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Frequency / continuity&lt;/strong>&lt;/td>
&lt;td>Continuous in production (sub-second)&lt;/td>
&lt;td>Only during the benchmark run&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Extra hardware&lt;/strong>&lt;/td>
&lt;td>None (uses system sensors)&lt;/td>
&lt;td>SPEC-certified analyser (~3,000 USD)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Attribution per workload&lt;/strong>&lt;/td>
&lt;td>Per pod/MIG with Kepler&lt;/td>
&lt;td>No: it measures the system, not the individual workload&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>External certification&lt;/strong>&lt;/td>
&lt;td>No&lt;/td>
&lt;td>Yes (SPEC PTDaemon + MLCommons review)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Data access&lt;/strong>&lt;/td>
&lt;td>Real time in Prometheus&lt;/td>
&lt;td>Public logs on GitHub after the round&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Recommended use&lt;/strong>&lt;/td>
&lt;td>Continuous monitoring in production&lt;/td>
&lt;td>Certified comparative benchmarking&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The operational conclusion: the two approaches are complementary, not competing. The DCGM/Kepler stack gives the continuous per-pod view for production; MLPerf Power gives the certified ground truth for hardware comparisons with reproducibility guarantees.&lt;/p>
&lt;hr>
&lt;h2 id="the-myth-of-measuring-only-the-gpu-data-from-the-paper">The myth of measuring only the GPU: data from the paper&lt;/h2>
&lt;p>The arXiv 2410.12032 paper devotes section §III-C to dismantling the myths of power measurement in ML systems. The one most relevant to on-premise inference is Myth 1:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;A common misconception is that measuring the power consumption of specific ML components, such as accelerators or GPUs, is adequate to assess system efficiency. In reality, overall system power consumption is crucial. Different components are active at various stages of ML workloads with varying duty cycles.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>The data from submissions with a wall analyser versus NVML readings confirms that the overhead of the node&amp;rsquo;s non-GPU components (CPU, memory, disks, fans, PSU losses) ranges between 25 and 45 % of total consumption depending on the system. An efficiency comparison based on NVML readings alone systematically underestimates consumption and can distort the ranking between systems with different CPU/GPU proportions.&lt;/p>
&lt;p>Myth 2 (TDP and PSU as power proxies) is also relevant: the TDP of an H100 SXM is 700 W per card, but real consumption in inference with Llama 2 70B depends on the load, the prompt length and the batch size. The MLPerf Power data shows that systems routinely run well below TDP in online inference scenarios (server scenario), where latency limits throughput and the GPU is not at 100 % utilisation.&lt;/p>
&lt;hr>
&lt;h2 id="limitations-of-the-current-submissions">Limitations of the current submissions&lt;/h2>
&lt;p>The limitations are not of the method but of the coverage:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Few submissions with power in datacenter.&lt;/strong> In v4.0 only 4 companies delivered power numbers for datacenter; in v5.1, one (Lenovo). Performance benchmarking has dozens of submitters; energy benchmarking has few. This limits the representativeness of the corpus for comparing on-premise hardware.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Heterogeneous SUTs.&lt;/strong> Each submitter defines its own SUT: number of GPUs, server, interconnect, software stack. A Dell system with 4×H100 is not directly comparable to a Supermicro one with 8×H100, even if both use the same model. Platform differences (NVLink vs PCIe, server vs rack) are captured but not separated out.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Fixed workloads.&lt;/strong> The MLPerf benchmarks are representative but they are not your load. The distribution of prompt lengths, the prefill/decode ratio and your users&amp;rsquo; batch size may differ significantly from the MLPerf synthetic datasets. The benchmark&amp;rsquo;s samples/J result is a reference, not a prediction of your workload.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Publication latency.&lt;/strong> Results are published months after the submission deadline. New hardware (H200, B100, B200) may have no power results available at the moment of the purchasing decision.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>No PUE.&lt;/strong> MLPerf Power does not include datacenter efficiency. Two identical systems in two datacenters with PUE 1.1 and 1.5 give the same MLPerf Power result but a very different electricity cost. For TCO, the MLPerf J/sample must be multiplied by your own datacenter PUE.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="usage-flow-for-an-on-premise-platform">Usage flow for an on-premise platform&lt;/h2>
&lt;p>For anyone who wants to use MLPerf Power as a purchasing reference or as their own benchmark, the practical flow:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Step&lt;/th>
&lt;th>Action&lt;/th>
&lt;th>Resource&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1&lt;/td>
&lt;td>Consult the publicly available submissions&lt;/td>
&lt;td>&lt;a href="https://mlcommons.org/benchmarks/inference-datacenter/">mlcommons.org/benchmarks/inference-datacenter&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2&lt;/td>
&lt;td>Filter by model (Llama 2 70B, GPT-J), scenario (Offline/Server) and division (Closed/Available)&lt;/td>
&lt;td>GitHub mlcommons/inference_results_vX.Y&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>3&lt;/td>
&lt;td>Compare samples/J between systems with similar hardware&lt;/td>
&lt;td>power log + performance summary&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4&lt;/td>
&lt;td>Adjust for your own PUE&lt;/td>
&lt;td>samples/J × (1/PUE) for real energy in the datacenter&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>5&lt;/td>
&lt;td>If you want to measure your own hardware: buy a Yokogawa WT310E, join MLCommons, get access to PTDaemon&lt;/td>
&lt;td>&lt;a href="https://docs.mlcommons.org/inference/power/">docs.mlcommons.org/inference/power&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>6&lt;/td>
&lt;td>Calibrate the software stack (DCGM/Kepler) against the analyser once&lt;/td>
&lt;td>see &lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">post C3&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="cross-links-of-the-energy-track">Cross-links of the energy track&lt;/h2>
&lt;p>This article is C4 of the energy pillar. The related articles:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/ai-energy-benchmarking-frameworks-metrics-state-of-the-art/">C1 — State of the art: energy benchmarking of LLM frameworks&lt;/a>: inventory of tools and overview of the field.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/energy-per-token-spain-methodology-electricity-market-speculation/">C2 — Energy per token: methodology and the Spanish electricity market&lt;/a>: the J/token identity and how the electricity price multiplies it.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/measuring-energy-in-production-kepler-dcgm-stack/">C3 — Measurement tooling in production: Kepler, DCGM and a practical stack&lt;/a>: the continuous stack for production that MLPerf Power complements.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/llm-inference-benchmarking-frameworks-metrics-state-of-the-art/">Benchmarking track — state of the art of frameworks&lt;/a>: context of the performance benchmarking that MLPerf Power extends into energy.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="see-also">See also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/llm-energy-leaderboards-wh-per-token/">LLM energy efficiency leaderboards&lt;/a> — the public J/token rankings where the MLPerf Power results appear: how to read them and what biases they carry relative to the methodology in this data sheet.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/mlperf-inference-reading-loadgen-comparability/">MLPerf Inference: how to read it and what comparability it offers&lt;/a> — the performance benchmark on which this energy measurement layer is overlaid: scenarios, LoadGen, divisions and comparison rules.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/measuring-gpu-power-nvml-dcgm-sampling-errors/">Measuring the power of a GPU: NVML, DCGM and sampling errors&lt;/a> — the software alternative to certified measurement at the wall, with its sensor and sampling limits quantified.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/en/posts/watt-to-carbon-pue-grid-intensity-gco2-per-token/">From watt to carbon: PUE, grid intensity and the real cost of a token&lt;/a> — the conversion step from the W measured at the PTDaemon AC meter to gCO₂eq and to euros, applying PUE and the country&amp;rsquo;s energy mix.&lt;/li>
&lt;/ul>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>MLCommons Power Working Group — &lt;a href="https://mlcommons.org/working-groups/benchmarks/power/">https://mlcommons.org/working-groups/benchmarks/power/&lt;/a>&lt;/li>
&lt;li>arXiv 2410.12032 · MLPerf Power: Benchmarking the Energy Efficiency of Machine Learning Systems from Microwatts to Megawatts for Sustainable AI (Tschand et al., 2024) — &lt;a href="https://arxiv.org/abs/2410.12032">https://arxiv.org/abs/2410.12032&lt;/a>&lt;/li>
&lt;li>MLPerf Inference Power Measurement Rules v2.0 (power_measurement.adoc) — &lt;a href="https://github.com/mlcommons/inference_policies/blob/master/power_measurement.adoc">https://github.com/mlcommons/inference_policies/blob/master/power_measurement.adoc&lt;/a>&lt;/li>
&lt;li>MLCommons power-dev · repositorio público de herramientas de medición — &lt;a href="https://github.com/mlcommons/power-dev">https://github.com/mlcommons/power-dev&lt;/a>&lt;/li>
&lt;li>MLPerf Inference Power Measurement Documentation (MLCFlow) — &lt;a href="https://docs.mlcommons.org/inference/power/">https://docs.mlcommons.org/inference/power/&lt;/a>&lt;/li>
&lt;li>SPEC PTDaemon · lista de dispositivos certificados — &lt;a href="https://open.spec.org/power/docs/specpower-device_list/">https://open.spec.org/power/docs/specpower-device_list/&lt;/a>&lt;/li>
&lt;li>MLCommons · MLPerf Inference v1.0 con las primeras mediciones de potencia (abril 2021) — &lt;a href="https://mlcommons.org/2021/04/mlperf-inference-v1-0-results-with-first-power-measurements/">https://mlcommons.org/2021/04/mlperf-inference-v1-0-results-with-first-power-measurements/&lt;/a>&lt;/li>
&lt;li>MLCommons · MLPerf Inference v4.1 results (agosto 2024) — &lt;a href="https://mlcommons.org/2024/08/mlperf-inference-v4-1-results/">https://mlcommons.org/2024/08/mlperf-inference-v4-1-results/&lt;/a>&lt;/li>
&lt;li>MLCommons · MLPerf Inference v5.1 results (septiembre 2025) — &lt;a href="https://mlcommons.org/2025/09/mlperf-inference-v5-1-results/">https://mlcommons.org/2025/09/mlperf-inference-v5-1-results/&lt;/a>&lt;/li>
&lt;li>MLCommons · MLPerf Power benchmark presentado en IEEE HPCA 2025 — &lt;a href="https://mlcommons.org/2025/03/ml-commons-power-hpca/">https://mlcommons.org/2025/03/ml-commons-power-hpca/&lt;/a>&lt;/li>
&lt;li>SPEC Updates PTDaemon Interface (GlobeNewswire, febrero 2024) — &lt;a href="https://www.globenewswire.com/news-release/2024/02/22/2833367/0/en/SPEC-Updates-PTDaemon-Interface-to-Meet-Evolving-Industry-Requirements.html">https://www.globenewswire.com/news-release/2024/02/22/2833367/0/en/SPEC-Updates-PTDaemon-Interface-to-Meet-Evolving-Industry-Requirements.html&lt;/a>&lt;/li>
&lt;li>Yokogawa WT310E Power Analyzer — &lt;a href="https://tmi.yokogawa.com/us/solutions/products/power-analyzers/">https://tmi.yokogawa.com/us/solutions/products/power-analyzers/&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>