vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
영상 트랜스코딩과 AI 추론의 실제 에너지 비용을 실시간으로 측정한 Greening of Streaming 벤치마크
The real energy cost of video transcoding and AI inference — measured live at the wall on Greening of Streaming's open bench. Every number is a real measurement: reproducible, citable, confidence-rate
데이터Python · JavaScriptGitHub @Greening-of-Streaming온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기OWL (Online WattLab) — measures the real device-side energy cost of video transcoding and AI inference on physical hardware with a calibrated smart plug, not models or estimates. Every result carries a traffic-light confidence rating.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗WattLab measures the real device-side energy cost of video transcoding and AI inference on physical hardware — using a calibrated smart plug, not estimates or models.
Built by Greening of Streaming, a French NGO working on the environmental impact of streaming infrastructure.
Live instance: wattlab.greeningofstreaming.org
Current release: v1.0.0 · the running build stamps its exact commit (e.g. OWL v1.0.0 · <sha> · <date>, auto-derived from git describe) · Report an issue or feature request
Sister projects (GoS energy-measurement toolkit): LEM — Local Energy Measurement: measures one or more smart plugs over the LAN (no TP-Link cloud) and can stream into REM · REM — Remote Energy Measurement: fleet-wide collection + exploration in TimescaleDB.
| Test | What you get |
|---|---|
| Video transcode | Energy (Wh) and time for CPU vs GPU — H.264, H.265, AV1 at matched ABR bitrates. "Compare all codecs" runs all six presets in one go. |
| LLM inference | mWh per output token, tokens/sec — a dynamic model ladder ~1B–20B (CR-050): ollama pull <name> + tick in /settings; live panel on /llm. |
| Image generation | Wh per image — distilled diffusion panel ~0.6B–3.5B (live panel on /image). "Compare Models" fixes prompt + seed so the model is the only variable. |
| RAG energy test | Energy cost of retrieval-augmented generation vs plain LLM — baseline / rag / rag_large compared side-by-side |
All figures are delta above idle baseline, sampled at 1-second intervals via a Tapo P110 smart plug on the mains supply.
Scope: device layer only. Network, CDN, and CPE are explicitly excluded. No amortised training cost in LLM measurements. (One extension: since 2026-07 the findings catalog also carries client-device decode panels measured on a separate rig under the same protocol — each states its own device scope.)
These exclusions are deliberate. Scope statements appear on every result.
GoS1 — lab server in France
| Component | Spec |
|---|---|
| CPU | AMD Ryzen 9 7900, 24 cores |
| GPU | NVIDIA RTX 5080, 16 GB VRAM (NVENC / CUDA) |
| RAM | 61 GB |
| OS | Ubuntu 24, kernel 6.17 |
| Power meter | Tapo P110 smart plug (mains, 1s polling) |
| Idle draw | ~79 W (display-blanked) |
GPU swapped from an AMD Radeon RX 7800 XT in May 2026; AMD-era baselines and measurements are preserved in docs/gpu_swap_amd_baseline.md.
Published findings live at /findings — a catalog of citable energy measurements, each one backed by a stored result file. Examples currently published:
Ship-of-Theseus honesty: when methodology changes (full GPU pipeline, ABR rate control, VMAF measurement), older findings are versioned via supersedes: in the finding file — citable URLs stay stable; the new reading lives alongside, marked as the current one.
Three tiers, one URL — https://wattlab.greeningofstreaming.org. The same page renders different controls depending on who's looking:
| Tier | Who | How | What's unlocked |
|---|---|---|---|
| Anonymous | Public visitors | Just open the URL — Anonymous tier resolves automatically | Curated workloads, full guided tour at /demo, prev-result panels populated from curated demo runs |
| Member | GoS members on the allowlist | Sign in via the magic-link form on /auth/sign-in (email-based) | Custom prompts / ffmpeg commands, all-codecs sweeps, RAG corpus uploads, video uploads ≤ 1 GB, CSV/JSON bulk export |
| Lab | Operators on GoS1 | LAN address (192.168.x.x) or SSH tunnel | Full settings, variance calibration, thermal-recovery probe, all jobs unscoped |
Anonymous quick-look: https://wattlab.greeningofstreaming.org/demo — the nine-step Guided Tour with predetermined demo jobs (H.265 CPU vs GPU, a representative LLM run, SD-Turbo, RAG comparison).
Lab via SSH tunnel:
ssh -p 2222 -L 8000:localhost:8000 [email protected]
# then open http://localhost:8000
The capability matrix is product copy on /demo step 6, and lives in code at wattlab_service/capabilities.py (one row per capability). All routes gate on capabilities, not raw tier compares.
Requires GoS1 or equivalent hardware (P110 plug, GPU optional — NVENC/CUDA or VAAPI/ROCm auto-detected).
pip install -r requirements.txt # at repo root; see CLAUDE.md for full package list
cp .env.example .env # add TAPO_EMAIL, TAPO_PASSWORD, TAPO_P110_IP
cd wattlab_service
uvicorn main:app --host 0.0.0.0 --port 8000
The service runs as a systemd unit on GoS1 (systemctl status wattlab).
Run the tests: cd wattlab_service && pytest tests/ — the current count is in TESTING.md (it drifts upward and is deliberately not quoted here; the suite must be run from wattlab_service/ — its conftest.py sets up the import path).
ARCHITECTURE.md — module map and request/job flows (best orientation doc; start here)WATTLAB_SPEC.md — original v0.2 product spec (April 2026, mostly delivered; current architecture in CLAUDE.md)JOURNAL.md — session-by-session build log with findingsTESTING.md — three-tier testing strategy (pytest suite + manual checklist)STAGING.md — staging mode (swap onto a feature branch with a maintenance page)bin/README.md — operator-facing shell scripts (stage-on, stage-off, probe-thermal-recovery, owl-maintenance-watchdog)systemd/README.md — systemd unit files for OWL servicesCHANGE_REQUESTS.md — active design / change requestsCHANGE_REQUESTS_CLOSED.md — shipped CRs archivedocs/wattlab_traffic_light_confidence.md — Tania's statistical framework for the confidence flag (CR-028 Phase 2 spec)docs/wattlab_parameters_audit.md — every settings parameter classified and the path to principled valuesdocs/result_envelope.md — the mode → renderer contract for every persisted result typedecode_bench/README.md — the client decode rig (devices, plugs, protocol, origin)docs/vp9_oneoff_2026-08.md · docs/pi_decode_energy_2026-07.md · docs/encode_parity_calibration_2026-06.md — campaign reportsdocs/methodology_vs_code_2026-08-19.md — where /methodology and the implementation disagree (owner review list)GOS1_INFRA.md — the server: disks, network, backups, incident logCLAUDE.md — project context for Claude Code (AI assistant config)