An independent, self-funded project answering one question: does quantization actually lower the energy cost of your LLM inference — or raise it?
Most quantization tooling tells you how to quantize. EcoCompute tells you whether you should, from direct NVML power measurements you can reproduce with the same container we used. When our own numbers disagree with each other, we publish the disagreement — see the run-to-run vs cross-session note.
Author Hongping Zhang (张洪平)
Affiliation None — independent researcher, Changsha, Hunan, China. No institutional, corporate or laboratory affiliation.
ORCID 0009-0000-2529-4613
Preprint SSRN #6854700 · archived copy 10.5281/zenodo.21066652
Code ecocompute-mlcube (measurement container) · quant-energy (this site, curve fitting, API)
Contact zhanghongping1982@gmail.com — corresponding author for this project and for the preprint.
Preferred channel For replications, corrections and disputes about the data, open an issue on ecocompute-mlcube instead: it keeps the exchange public and attached to the artifact being questioned.
Maintainers One. Every number on this site was produced, reviewed and published by a single person, which is precisely why independent replication matters here.
No external funding. No grant, no institutional budget, no vendor sponsorship, no cloud credits. GPU time — the rented RTX 4090 instances on which the deep-dive sessions were measured — and the domain and hosting were paid for by the author.
The author declares no competing interests. Specifically: no financial or employment relationship with NVIDIA, with any
cloud or GPU-rental provider (including AutoDL, on whose rented instances the RTX 4090 sessions were measured), with Hugging Face,
or with the maintainers of bitsandbytes, whose NF4 and LLM.int8() kernels are the subject of most of the
measurements here. A short energy-efficiency FAQ was contributed to the
bitsandbytes documentation
on a voluntary, unpaid basis. Nothing on this site is sponsored, and no advertising or affiliate links are carried.
Every number on the Tested models tab comes from direct NVML power sampling during real inference — never a TDP or datasheet figure:
| Quantity | Value |
|---|---|
| Power | nvmlDeviceGetPowerUsage polled at 10 Hz, integrated over the decode loop — GPU-package power, not wall-plug |
| Workload | Single-stream decode, batch size 1, 256 generated tokens per run, 10 iterations after 2 warmups, greedy |
| Baseline | Each model's own FP16 run in the same session; every ΔE% is relative to that |
| Hardware | NVIDIA RTX 4090 and RTX 4090D (Ada), RTX 5090 (Blackwell), A800-SXM4 (Ampere), Tesla T4 (Turing) |
| Software | Pinned per session and published: see the environment card on the home page |
Where a value is modelled rather than measured it is labelled in the UI and in the API response —
measured, interpolated, extrapolated, estimated. Estimates are never
presented as measurements. The full protocol, the fits and the known limits are on the methodology page.
bitsandbytes NF4 / LLM.int8() on the cards listed. A different kernel or serving stack can reverse the sign.Everything behind the figures is public and archived under CC BY 4.0 (data) or Apache-2.0 (code):
build/measured.csv holds every anchor, curves.json the fitted parameters.Corrections are published, not quietly patched. When a number changes, the change and its cause are written down — the derived-column erratum in the dataset record, the recomputed RTX 4090 deltas, and the notes that state where two of our own sessions disagree by a factor of two. If you find an error, open an issue; a measurement that contradicts the published curve is the most useful thing anyone can send.
The project is looking for runs on additional GPUs, cloud instances, model families and quantization backends
(AWQ, GPTQ, TensorRT-LLM in particular, since everything here is bitsandbytes). Start from
the container page: one command produces a schema-validated energy.json, and
the replications page checks it in your browser and overlays it on the curve before you submit it.
GET /v1/estimate · GET|POST /v1/optimize at ecocompute-estimator…workers.dev (CORS open)recommend_config for Claude Desktop / Cursor