What do you want to do? Pick one path
I just want the answer
Enter a GPU and a model size and get a directional verdict: does quantization save energy in your configuration, or cost more?
I want to verify it
No GPU needed: a free Colab T4 produces your own energy.json. With a GPU, run the container.
I want to cite or audit the research
Protocol, dataset DOIs, the limitations statement, the changelog and BibTeX — all checkable primary material.
① I just want the answer
Enter a GPU and a model size and get a directional verdict. The tool is right below: Tested models picks a card and model we actually measured; Your model takes your own model size and extrapolates the fit; Optimize searches precision × batch × context under your constraints.
Directional is not a production decision. See the limitations for the boundary of every number.
Inference energy per 1M tokens
This is not a universal law for all GPUs, models or inference frameworks. Within the GPUs, software stacks, batch sizes, context lengths and measurement windows measured so far, NF4 shows a crossover that depends on model size and hardware — not “NF4 saves energy on big models, INT8 never does”.
Crossover curve · in what we measured, the bigger the model, the more quantization saves
Not a universal law: NVIDIA GPUs · single-stream decode · batch 1 · 256 tokens · n = 2 · GPU-package energy, not wall-plug. Beyond the fitted range the curve is not a measurement. Full scope →
Solid lines connect measured points only (direct NVML). Marker fill encodes replication, not accuracy: filled dots are points repeated at least twice in the main dataset (v1.1.0, n = 2, CV < 2%); hollow dots on a faded line were measured once (n = 1) — the July 2026 RTX 4090 deep dive and one early RTX 4090D point — so they carry no measured spread and should be read as a single observation, not as a distribution. INT8 was measured on A800 and RTX 4090 only, and sizes outside each GPU's measured range aren't drawn here. For fitted extrapolation beyond the measured range, use the Your model tab.
③ I want to cite or audit the research
This layer is for anyone citing, checking or recomputing. Every number carries its n, its window and its DOI.
Version matrix — what you are actually running
| Layer | Current version | DOI / release | Role |
|---|---|---|---|
| Protocol | v1.1 | 10.5281/zenodo.22958675 | Normative requirements |
| Report schema | ecocompute-energy/1.3 | GitHub release schema-1.3-r4 | Machine validation |
| Container | schema-1.3-r4 | GitHub release · image digest in SHA256SUMS | Executable measurement |
| Main dataset | v1.1.0 | 10.5281/zenodo.19647290 | Published measurements (360+ configurations) |
| Supplement | RTX 4090 deep dive v3 | 10.5281/zenodo.22037483 | Deep re-test (Ada): repeatability, paired perplexity |
The five layers version independently. “Running the project” today means the container release schema-1.3-r4, whose reports validate as ecocompute-energy/1.3 against Protocol v1.1 — and every published number traces to a dataset DOI above. Full version-by-version correspondence: spec §8.
Protocol & data
- Protocol v1.1 (normative) — what makes two submissions comparable
- Number glossary — 26/56, 29, 42, 144 and 360+ each has its own denominator
- Main dataset v1.1.0 · Zenodo DOI — 360+ measured configurations
- RTX 4090 deep-dive dataset · llama.cpp raw data
Limitations — read before citing
- Limitations and how to disprove us — the site's own statement of its methodological weaknesses
- 26 of 56 coverage-matrix cells have a number; the other 30 are empty. The seed data's thermal state is unknown, which is not cold.
- Backends are almost entirely bitsandbytes (llama.cpp has exactly one cell), and everything is batch 1.
- Stack versions drift: the fitted curves inherit the software stack their anchors were measured on — the crossover is card-plus-stack, not hardware destiny (the RTX 5090 re-test).
Citation & versions
- Artifacts & citation · BibTeX
- Preprint · SSRN #6854700
- Changelog — every change to data, protocol and site, dated and linked to its evidence
- Container source · Apache-2.0
First time here? Six questions answered
Is this a paper, a tool, a dataset, or a company?
Not a company. It is three things: an open measurement protocol (Protocol v1.1 — what makes two submissions comparable), an MLCube container (anyone can reproduce the same measurement on their own GPU), and a dataset archived on Zenodo (360+ measured configurations, with a DOI); plus an SSRN preprint stating the conclusions. Single maintainer (Hongping Zhang), Apache-2.0. The findings are also reflected in Hugging Face Optimum's quantization documentation (based on dataset v1.1.0).
Should I read the conclusions or the protocol first?
Conclusions first: spend a minute with the tool above to get a direction. You only need the protocol and the limitations when you are about to cite it or make a decision on it — the site deliberately splits “what we require / what we measured / what changed / what we are still exploring” into four layers so you never have to wade through methodology up front.
I have no GPU — can I use this?
Yes. The estimator is pure front-end and needs no hardware at all. To get your own measured number, a free Colab T4 is enough (20–35 minutes, nothing to install) and produces the same energy.json as the container; both arms have to fit, which on a 16 GB T4 means models up to about 3B.
Can these results guide a production deployment?
At this stage they give a direction, not a production decision. Every number is GPU-package power (NVML) — excluding PSU losses, CPU, DRAM, cooling and PUE — measured at single-stream batch 1 over 256 tokens, in the generation window only. It is neither whole-system power nor any certified benchmark result. For a production decision, measure your own stack, batch and workload — which is exactly what the container is for.
I'm a researcher, a cloud provider, or a developer — where should I click?
Does “NF4 saves energy” hold for my model?
It depends on your model size and your GPU — there is no unconditional answer. The fitted crossovers sit near Turing 2.1B / Ada 3.7B / Blackwell 4.8B: below the crossover quantization usually costs more energy, above it, it starts to save. And coverage is almost entirely bitsandbytes at batch 1, so changing the runtime can flip the sign — on the same card, llama.cpp Q4_0 is −61.9% while bitsandbytes LLM.int8() is +106%. So: get a direction from the estimator, then verify on your own stack with the container.
Full content index · how to read this site
Four layers · how to read this site
1 · Spec — the normative protocol
What makes two submissions comparable. The normative protocol, the container and schema that enforce it.
Protocol v1.1 · Number glossary · Container guide · Run it yourself · Schema
2 · Evidence — what we measured
Everything measured, at its replication level — and every count with its denominator.
Evidence hub · Coverage matrix · Latest: two-card NF4 re-test · Public replications · Cite
3 · Changelog — what changed
What changed in the data, protocol and site — dated, typed, linked to its evidence.
All entries · Window unification (09-24) · NF4 two-card re-test (09-25)
4 · Findings — what we are still exploring
Deeper write-ups and tools whose output is a model, not a measurement — never counted in the matrix.
Recent updates
energy.json schema — which is what keeps any future private result comparable
with the curves published here.