open-standards/eoc
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 335f7f1fa7
All checks were successful
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 6s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m35s
energy meters on real hardware / sink decode table · per-task energy and the GPU rail on macOS (pull_request) Successful in 2m46s
standards workspaces build + test / eoc-rs (eoc/eoc-rs, -p eoc-meter --features cuda, eoc-rs, linux) (pull_request) Successful in 2m43s
energy meters on real hardware / RAPL and NVML on jetson-hub (pull_request) Successful in 36s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 6m57s
energy meters on real hardware / sink decode table · RAPL on jetson-hub (NVML surveyed) (pull_request) Successful in 2m22s
eoc-meter: RAPL MSR domains are per die on Intel, per package on AMD; powercap die zones count
The kernel scopes Intel's RAPL energy counters per die. Its perf PMU treats
the package counter as package-scope only on AMD and Hygon ("AMD/HYGON
platforms have a per-PKG package energy counter", rapl_pkg_pmu_is_pkg_scope()
in arch/x86/events/rapl.c), and on a multi-die Intel package (Cascade Lake-AP)
"its RAPL MSRs are die-scope"; its powercap driver then lists one zone per die,
named package-<p>-die-<d> (intel_rapl_common.c). Both paths here under-counted
such a package, the unsafe direction at a ceiling:

- The MSR fallback grouped CPUs by physical_package_id alone, so it read one
  die of a multi-die Intel package. On Intel a counter domain is now
  (physical_package_id, die_id), die_id 0 where the file is absent; on AMD
  and Hygon it stays the package. Each domain is read on its lowest-numbered
  CPU and every domain is summed, all or nothing as before (zero unit, wrap,
  powercap preferred, status text unchanged). A die of a multi-die package
  has its own rail name, package-<p>-die-<d> (MSR), in the liveness rails and
  in errors.
- The powercap name rule accepted only package-<n>, so such a host's die
  zones were no package at all. It now also accepts package-<p>-die-<d>, and
  nothing looser (not psys, dram, package-, package-0-die-,
  package-0-core-0), so every die zone is summed and watched.

The hardware test's oracle follows both rules: its zone check accepts die
zones, and its MSR reader groups Intel CPUs by package and die.

Tests (fake files): an Intel package of two dies is two counters, each read
on its own first CPU, both summed, with distinct rails, and a die whose device
is missing leaves no figure; an AMD package whose CPUs report different
die_ids is one counter; an Intel host with no die_id files, or all on die 0,
is read per package as before; the name rule over die names and near misses;
a fake two-die powercap tree sums both zones and is frozen when one die holds.
Unit tests pass on Linux x86_64 (default and cuda) and on macOS (the CI step,
its `ioreport liveness:` line printed); clippy is clean on macOS and on Linux
in the default build.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 21:20:05 -05:00
..
cookbook Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
docs Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
eoc-bench Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00
eoc-rs eoc-meter: RAPL MSR domains are per die on Intel, per package on AMD; powercap die zones count 2026-11-04 21:20:05 -05:00
os Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
spec Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
standards eoc annex: the per-process counter's lumps are the kernel's fold, and a checked read is exact 2026-10-13 00:54:51 -04:00
vocab vocab v1 SHACL shapes across sister standards (wave-23 #4/#5) 2026-06-02 18:55:56 -04:00
LICENSE Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
README.md licences: ship the Apache-2.0 text the code already declares 2026-10-09 17:22:32 -04:00
THREE_FACES.md Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00

EOC — Energy-Optimized Compute

A free, always-available, energy-honest AI substrate. AI that costs joules, not tokens.

AI is not free yet. The internet is. EOC closes the gap: a substrate that resolves work at the lowest sufficient cost and refuses to spend unbounded energy chasing benchmark deltas. Every query flows through a four-stage pipeline — state-construct → retrieve → refine → check — and a large language model is one of six refine operators, ordered last. The Fourth Truth: refinement before generation. The substrate runs in a browser, runs on commodity CPUs, denominates everything in joules per task against an open evaluation corpus, and cannot be turned off because no one entity runs it.

The substrate is intentionally ownerless: no protocol-level token, permissive licensing, conformance test vectors and open eval corpora so any implementation can verify itself without a trust relationship with the authors. Transaction Science is one steward — it publishes the spec, ships a reference implementation, and operates commercial services around the substrate (managed nodes, certification, registry hosting) — not its proprietor.

Contents

  • spec/eoc1_spec.docx, spec/eoc1_v0_1_1_patch.docx, spec/eoc1_v0_2.docx, spec/eoc1_v0_2_addendum_A.docx — EOC-1: the substrate architecture (v0.1 tiers → v0.2 four-stage pipeline; Addendum A: non-goals — token economics)
  • spec/eoc2_wire.docx — EOC-2: the wire protocol (capability exchange, gossip, signed envelopes)
  • spec/eoc3.docx — EOC-3: artifact distribution (content-addressed fetch for models, state machines, corpora)
  • spec/eoc4_dcy.docx — EOC-4: DCY (Deterministic Cypher — the query language for the knowledge-graph retrieve operator)
  • spec/eoc5_registry.docx — EOC-5: the Operator Family Registry (stable identifiers + conformance tests)
  • spec/eoc1_eval001*.docx, spec/eval001_worked_instances.docx, spec/eval002.docx — Eval-001 (schema-conformant generation proficiency standard) and Eval-002 (retrieval/provenance)
  • spec/eoc_architecture.docx — the architecture working draft
  • spec/tokens_concealment.docx — Tokens Are the Concealment (the rhetorical companion to Addendum A)
  • os/THEOREM.md, os/Q1_W_DEFINITION.md — the energy-first OS theorem the substrate is designed to run on, and the resolution of its open question on defining "useful work" in joules-per-work

Status

EOC-1 at v0.2; EOC-2..5 and Eval-001/002 at working-draft 0.1; OS theorem at v0.2. The reference implementation referenced across the specs as "v0.3" is to be brought into this repository.

Licence

Specification text: CC-BY-4.0 (see LICENSE). Reference implementation in eoc-rs/: Apache-2.0 (see eoc-rs/LICENSE).

  • Smart Byte (../smart-byte/) — the value substrate; uses EOC's energy attribution.
  • TX Science AI (ais.transaction.science) — the AI PaaS; its memoizing cascade is an instance of the EOC four-stage pipeline.