SemanticCompute

Numerical verification for heterogeneous compute · reference vs candidate

Prove your kernel agrees with your reference. To the ULP.

Two implementations of the same computation — a CUDA, Metal, Triton or hand-written kernel and the reference you trust — and they disagree. SemanticCompute tells you where, by how many ULPs, and the likely cause (FMA contraction, reduction order, denormal flush, NaN) — classified with evidence, not guessed — and whether a tolerance actually makes sense. Any two arrays, whatever produced them: CPU↔GPU · GPU↔GPU · kernel↔reference · backend↔backend. And because two backends can agree on the same wrong answer, where a family ships a higher-precision ground truth (as CompensatedSum does) the same doctor checks the answer is right, not merely reproducible.

It doesn't rewrite your kernel. It classifies the cause, prescribes the fix, and re-verifies yours worked — diagnose → prescribe → re-verify. Where the divergence is legitimate approximation, it prescribes a stated tolerance, not a change.

macOS 1.23.0 — universal Intel + Apple Silicon; Developer-ID signed and notarised Linux 1.23.0 — native x86-64 + AArch64 binaries from the tagged CI build emits Metal · portable C · WebGPU · CUDA (recorded device parity)
188 verified families 1,385 tests total · 294 Swift Testing suites + XCTest 391 kernels · 249 lowerings · 0 failed
REF vs CANDIDATEscanning…
reference candidate (agrees) divergence special value (NaN/∞)

Current release · licensed, exact, agent-ready

Verification you can distribute without giving away the engine.

Version 1.23.0 grows the catalogue to 188 families, adds exact storage and checkout evidence, exposes 20 bounded MCP tools, and puts every native commercial executable behind the same expiring, revocable entitlement. CPU reference truth, contracts, lowering, and parity remain aligned.

01 · LICENSED DISTRIBUTION

Every native compute path fails closed.

The parity CLI, MCP server, and Live service check a stamped build, entitlement expiry, credits, and device ceiling before paid work executes. Help, version, discovery, and health remain available.

The service stores only peppered key hashes and hashed installation IDs. Administrators can inspect, renew, revoke, or reset devices, with every mutation recorded in an audit ledger.

02 · EXACT AUDIT / STORAGE

Large evidence sets stay exact and inspectable.

APFS checksum validation, variable-span overlap, CSR components, stable sparse assignment, growth evidence, lexical scans, segmented UInt64 ranks, and bounded span search avoid Float/JSON precision loss and return explicit refusal states.

Filesystem traversal, normalisation, persistence, deletion policy, and UI virtualisation stay with the host. SemanticCompute accelerates bounded evidence, never the decision to delete or merge.

03 · MCP / LIVE / DOCKER

The same proof surface reaches every serious agent.

One validated MCPB manifest advertises all 20 tools to Claude, Codex, Gemini, and editor agents. A licensed non-root Docker MCP image carries the exact source commit, a persistent device identity, SBOM, provenance, and a signed multi-architecture digest.

The bounded Live service and D1 control plane are runtime-tested locally. The public browser remains disabled until a pinned hosted runner produces its own canary receipt.

1.23 evidence and distribution additions

SHA-256 variable spans byte diff + first mismatch CBOR structural scan prefix scan + compaction histogram + entropy canonical key ordering strict UTF-8 validation Base58 + multibase unsigned varint codec frozen context/type probe whole-document plan CDDL flat validation VM APFS metadata checksum variable-span overlap CSR graph components irregular growth evidence commercial entitlement gate bounded Live byte parity licensed Docker MCP
TAGGEDexact source commit stamped 15 ASSETSnative cut + evidence MACOSuniversal · signed · notarised LINUXnative x86-64 + AArch64 SUPPLY CHAINSHA-256 · SBOM · notice

Public control plane · execution gate closed pending hosted runner

The trial front door is live. It will not imply that the runner is.

semanticcompute-live exposes a bounded, bearer-protected POST /v1/check/bytes endpoint. It runs the exact Compatibility Doctor, returns the first differing byte, and records service, engine and build identity in a versioned receipt. A Cloudflare Worker/D1 front door now issues bounded trial tokens, reserves one credit, forwards to that Swift process, and returns the receipt. The complete local Worker → D1 → runner path passes; the public browser stays disabled until a hosted runner has produced its own canary receipt.

01 · LOCAL E2E EXECUTED

Exact byte evidence from a real request.

The client supplies canonical Base64 reference and candidate bytes. The service refuses unknown fields and oversized input, then reports compatibility, compared bytes, mismatch count and first mismatch offset.

02 · IDENTIFIED

The service and engine keep separate identities.

Every receipt carries serviceVersion, engineVersion, engineBuildCommit, execution target and request digest, so a deployment cannot silently redefine the engine result.

03 · CONTROL PLANE DEPLOYED

Hash-only trial tokens and idempotent credits.

D1 stores token hashes and expiring limits. Executed compatible and incompatible results both cost one credit; unavailable or malformed runner responses are refunded. Cloudflare's permissive rate limiter is used for abuse control, while the durable ledger remains the accounting source.

# Public status — execution remains gated curl https://semanticcompute-trial.douglas-57d.workers.dev/v1/health

The Worker, secrets and migrated D1 ledger are publicly deployed. Health reports control-plane-only: Cloudflare refused the CPU Container rollout because Containers require Workers Paid. No public runner execution or chargeable public receipt is claimed. Signed receipts and controlled GPU runners remain later gates.

The kill-shot

Silent divergence, caught — and localised.

Point it at any two arrays — a CUDA, Metal, or hand-written kernel result and the reference you trust, whatever produced them. It tells you where they diverge, by how many ULPs, and the likely cause (classified, with evidence), and which tolerance tolerates what. Four canonical culprits — and the classification is not a heuristic left unexamined: it is tested against a failure lab of engineered specimens, each with a declared cause the doctor must recover (--zoo all), in CI and in the licensed binary on your machine:

The loop, with you in it

Diagnose → prescribe → you apply → re-verify.

Every classified cause carries a mechanical remedy — force or disable FMA, apply the max-shift, pin the reduction order, disable flush-to-zero — and the verification report makes each divergence selectable: click one, get its diagnosis and its prescription. Your agent applies the fix through the MCP server; the doctor then re-proves the result against your reference. SemanticCompute never edits your kernel, and that is a design decision, not a gap: a verifier that writes the fix and then certifies it is grading its own work, and the independence that makes the verdict worth anything is gone. Where it can go further, it does — it recognises a known operation in your source (heuristically, with a confidence and a line number) and points you at a whole implementation that is already parity-proven across backends. You substitute it; it is re-proved against your reference. A lead you can check, never a silent rewrite.

Boundaries, stated

Bring two arrays. Nothing to adopt.

It never rewrites your kernel and never asks you to adopt a runtime or framework — it judges outputs. Comparisons are float32, whole-buffer. And it is the oracle, not the input generator: you supply the arrays, so pair it with your own shape and input sweep. It can emit specimen kernels of its own, but parity diagnosis is the product.

SLCompatibilityDoctor.compareFloatBuffers — profile: .exact 4 mismatches · first @ index 0
idxreferencecandidateΔcausepolicy
00.754812300.754812361 ULPFMA contraction (one rounding vs two)
→ force/disable FMA, or state ulp(1)
11.4e−450.01 ULPdenormal flushed to zero
→ disable flush-to-zero, or widen the tolerance
20.00000000NaNspecialunguarded 0/0 (reference masks it)
→ guard the divide, then re-verify
31000000.01000000.1252 ULPULP drift at magnitude 1e6 — abs err 0.125
→ the relative bar accepts it; ulp(1) flags it — pick the policy that fits
4 +——0 ULPthe rest agreepass

Click a tolerance policy — watch what it tolerates:

Each → prescribed fix follows from the diagnosed cause — a code fix for the unguarded NaN, a stated tolerance for legitimate rounding; SemanticCompute prescribes it and re-verifies, it doesn't rewrite your kernel. (The smallest denormal and 0 are adjacent floats, so the flush is exactly 1 ULP.)

Same four culprits, live from the failure lab, runnable from the CLI binary: semanticcompute-parity --zoo 01-fma-contraction

Provenance-agnostic array comparison: it compares any producer's output — Triton · PyTorch · CUDA · vLLM · FlashAttention — against your reference; no integration with, or backend for, any of them is claimed. Worked examples reproduce each one's documented numerical failure mode — diagnosed and classified.

Any check can emit a self-contained HTML verification report — a shareable audit artifact. This one is the KernelBench loop closing: a generated softmax kernel diverged, then verified after the fix.

Proof in pictures · recorded, illustrative and pending states stay distinct

See the divergence, its cause, and the re-verification.

A plausible image can still violate its numerical contract. These labs expose the reference, candidate, residual, boundary rule and tolerance together. Each page identifies whether it is replaying a deterministic illustration, reporting a captured local run, or waiting for a consumer execution receipt.

Interactive illustration

Inspect every channel and tolerance.

Switch between candidate, reference and deviation views; compare exact, ULP and mixed tolerance policies; then download the deterministic fixture statistics. This browser lab demonstrates the reporting model and does not assert that a GPU ran.

Recorded 1.20.0 statistics · deterministic replay

One boundary defect: 368 failures → 0.

A 48 × 48 SeparableConv2D fixture makes implicit zero padding visible against the declared clamp-to-edge contract. The page preserves the historical engine version and separates its recorded family/MCP statistics from the explanatory browser canvases.

Before368 failing pixels After0 failing pixels Max |Δ|0.212988 → 1.192e−7 Boundaryzero → clamp Scopecorrectness, not speed
Consumer protocol · receipt pending

DICOM morphology without a clinical claim.

A public synthetic mask specifies the CPU reference, requested Metal route, exact binary residual, fallback disclosure and timing scope. It remains visibly pending until AssistantApp exports the first completed runtime receipt.

Local engineering evidence · not 1.23 release proof

Keep the wins, losses and unrun consumer fields together.

The extended ledger reports release-mode local family measurements from HEAD 55ae773 plus a recorded dirty-source digest, including faster, slower and parity-preserving outcomes. Its MacResilience after-column remains empty until the same 36-checkout fixture is replayed against an identified build.

One IR · three executed targets in-core + recorded CUDA hardware evidence

The same kernel, lowered four ways — every way proven to agree.

The four backends are not a compiler pitch — they are how the doctor is tested against itself: the same kernel, lowered four ways and executed, must agree with the CPU reference before we ask you to trust a verdict about yours. A single optimising front door feeds every backend; the target is chosen only at the final emit. The parity contract, by target: Metal and portable C execute the full family suite on-host, diffed against the CPU truth; WGSL/WebGPU is validated on every specimen by a real WebGPU front end and executed on-device for the affine and matmul kernels (full-family WGSL execution in progress); CUDA is emitted by the core and executed by the optional NVIDIA runner — 17 tests across three suites on an RTX 4070 Ti SUPER at source checkpoint f183b0d, covering odd extents, folded-4D dispatch, branches, NaN/±∞ semantics, uint marshalling, loops, and the float-vector layer under a stated no-fast-math contract. Earlier RTX 5080 and RTX 5060 Ti runs provide historical device breadth. The evidence log published (and the GPU-free NVRTC compile-gate log beside it). Verified for the covered specimens on recorded configurations — the core itself ships no CUDA runtime, and says so.

SLKernel
typed semantic IRlegalise · fold · CSE · DCE
→ Metal (MSL)
Apple GPUs, on-device.
executed · agrees
→ Portable C
Any CPU, fixed ABI. The off-Apple oracle.
executed · agrees
→ WGSL / WebGPU
Cross-vendor: browsers, Vulkan, D3D12.
validated · specimen-executed · agrees
→ CUDA C++
NVIDIA GPUs, via the optional runner package.
executed on two GPUs · agrees
The contract

Tolerance is stated, never hidden

Compare under exact, a default abs/rel bar, or ulp(n) — agreement to within n representable floats, at any magnitude. The scale-free, gold-standard bar.

Modelled honestly

The edge cases that break agreement

FMA contraction, denormal flush-to-zero, NaN-skipping fmin/fmax, ties-away rounding, signed zero — reproduced in the reference so the two sides actually agree.

Proven, not asserted

Passes are on-device parity tests

The compiler's optimisation passes are verified semantics-preserving by running before/after on the GPU and comparing bit-for-bit. 1,385 tests are green on macOS (1,374 across 294 Swift Testing suites, plus 11 XCTest cases); three backends execute in-core (Metal, C, WebGPU). The optional CUDA runner has 17 tests across three suites recorded green on an RTX 4070 Ti SUPER at source checkpoint f183b0d. The 1.23.0 tag had no online NVIDIA runner, so families added after that checkpoint are not claimed as freshly NVIDIA-executed in this release.

cuda-parity-evidence.txt — the NVIDIA run, replayed

Every line above is verbatim from the published evidence log — nothing staged, nothing summarised. The same file the CUDA claims on this page link to.

Measured, not asserted

Where the GPU wins — and where it honestly doesn't.

Batch DSP on an Apple M3 Pro, release build, against a fair multithreaded CPU baseline. Reported the way you'd want a vendor to report: with the losses in the table.

≈28×
Batched Goertzel bank (hum/THD comb)
vs multithreaded CPU · ≈199× vs the scalar code that ships
≈2.6×
Transcendental per-bin mask synthesis
exp() per bin · fully parallel
≈1.2×
Pointwise add (bandwidth-bound)
a wash — shared memory bandwidth, no free lunch
0.02×
Tiny / real-time-sized transform
GPU loses — dispatch latency dominates

Why show the losses? Because the product is trust. The wins are real and large where the work is compute-bound and batched; they collapse toward a wash on memory-bound ops and lose outright at real-time sizes. An earlier draft mis-measured against a debug build; it was caught and corrected. That is the whole point of the tool.

The substrate · grown by consumer demand

188 kernel families — each one carrying its own proof.

A family is not a kernel in a zip: it is a CPU reference, a stated contract, and a GPU lowering that must agree — under a tolerance that is measured and justified, never inherited. Four gates hold the library honest: a symbol index in which every kernel-emitting implementation is claimed exactly once, a compile sweep across all 391 programs, a catalogue pin a new family cannot dodge, and the parity suite itself. A family lands only when a real pipeline measured the need — and ships only when every gate passes.

signal & DSP61
reduction25
linear algebra22
pointwise16
stencil13
morphology11
sampling9
indexing9
interpolation5
data movement6
normalisation3
scan8

Counts are the 1.23.0 catalogue, pinned by a test — the page cannot claim families the source does not carry. Browse them from any MCP client: sc_list_families returns each family's reference, contract and lowering signatures.

Medical imaging · 3D

From decode to detection geometry

Surface distance (HD/HD95/ASSD), marching cubes, affine resample, mutual information, 3D IoU/ROIAlign, and a fused labelwise scatter whose bbox is contractually in absolute volume coordinates — because a consumer lost a day to a crop origin that wasn't.

Convolution inference

A ported trunk that stays ported

Conv3D, transposed conv, instance norm and LeakyReLU in PyTorch's exact conventions — eps-inside-sqrt and cross-correlation pinned by tests chosen so no tolerance can blur which convention is implemented. Checkpoints drop in without a transpose pass.

Estimation & tracking

Filters that stay positive-definite

Batched EKF in Joseph form, IMM mixing with the spread term, RTS smoothing, particle resampling with the ESS gate that decides whether to resample at all.

carried forward · v1.22 CBOR-LD & structured data

Recursive documents, bounded before dispatch

Twelve exact-integer families flatten recursive values under explicit limits, validate UTF-8 and CBOR structure, order canonical keys, hash bytes, encode varints and run bounded CDDL checks — while context loading, dynamic maps and diagnostic construction stay with the CPU reference.

current · v1.23 Storage & code evidence

Exact candidates, with refusal built in

Variable-span set overlap keeps exact numerators and denominators; sparse assignment keeps each UInt64 cost component explainable; CSR analysis exposes WCC/SCC, cycles and topological strata; irregular-time growth detection abstains when coverage, identity, timing or counters stop being comparable. These are evidence surfaces, never deletion or merge decisions.

Audio & onset

Percussion that stops lying

Constant-Q/Variable-Q spectrograms with per-bin Q-matched windows, and the five phase-aware onset functions — built after two independent drum models failed the same kick/conga discrimination and the defect turned out to be the spectrogram, not the models.

Release artifacts · licence controlled

Give every serious coding agent the same numerical proof tools.

The complete 1.23.0 distribution ships the MCP server, parity CLI, and Live service as signed, notarised universal macOS binaries and native x86-64 + AArch64 Linux archives. Every binary carries the exact tagged source commit; the release also includes checksums, an SBOM, licence notice and CUDA evidence. This release checks an expiring, revocable entitlement before CLI, MCP, or Live compute operations. Bounded trial keys can carry job and installation limits; paid keys follow their subscription. The source is closed; serious evaluators can review it under NDA. Earlier downloaded artifacts predate this gate and remain governed by their licence terms.

# Licensed distribution: set the key delivered after trial approval or purchase export SEMANTICCOMPUTE_LICENCE_KEY=sc_lic_… # Then verify + install + register with Claude Code, Codex and Gemini CLI curl -fsSL raw.githubusercontent.com/entertrainment/semanticcompute-dist/main/install.sh | bash # Claude Desktop: just double-click semanticcompute-mcp.mcpb (Settings ▸ Extensions)

Prefer a manual binary? Grab one from Releases. Read the detailed 1.23.0 notes or the complete changelog. Per-client setup (Claude Desktop · Claude Code · Codex · Gemini · VS Code · Cursor · Windsurf) is in the install guide.

Run the MCP server so an agent can verify numerics, classify the cause, and get the prescribed fix — mid-task. Diagnosis returns a typed remediesByCause map, so the agent applies the fix and re-verifies; a generate → verify → prescribe → re-verify loop closes automatically:

sc_check_parity sc_check_integer_parity sc_validate_metal_texture sc_diagnose_divergence sc_verification_report sc_zoo sc_ulp_distance sc_list_families sc_emit_kernel sc_suggest_families sc_detect_in_code sc_version sc_set_overlap sc_match_assignment sc_graph_components sc_graph_layout sc_growth_anomalies sc_cbor_preflight sc_validate_cddl sc_apfs_checksum

Plus MCP resources — the family catalogue and the failure lab as browsable context (semanticcompute://families, semanticcompute://zoo) — and prompt workflows: verify-kernel, diagnose-divergence, find-existing-family, verify-and-prescribe.

Claude · Codex · Gemini · editor agents

One server, twenty bounded evidence tools

The published verification substrate as signed, notarised macOS binaries (+ x86-64 & arm64 Linux) — the parity doctor, the cause classifier, ULP tolerance, and measured accuracy vs a higher-precision truth. The installer registers the same checksum-verified executable with Claude Code, Codex and Gemini CLI; Claude Desktop uses the bundled MCPB, while VS Code, Cursor and Windsurf use their native local-MCP setup paths. New distribution builds require an active trial or subscription key; source review is available under NDA.

Something to break

The failure lab

A runnable catalogue of the canonical silent CPU↔GPU divergences. An active trial or subscription key lets --zoo reproduce each one so you can confirm what the doctor catches on your own machine, without the source.

Early access

Hosted verification — get in touch

Parity CI, cross-vendor execution, and audit-trail reports for teams who have to prove their numerics — metrology, audio-ML, and regulated compute. Not yet a purchasable product.