Skip to content

docs/specs: sync with current status, record benchmark references - #6

Merged
leonardoaraujosantos merged 1 commit into
mainfrom
docs/spec-sync-and-benchmarks
Jul 5, 2026
Merged

leonardoaraujosantos merged 1 commit into
mainfrom
docs/spec-sync-and-benchmarks

Conversation

@leonardoaraujosantos

Copy link
Copy Markdown
Contributor

Summary

Answers the "are README and OpenSpec in sync?" audit by fixing the drift it surfaced, and captures the GPU benchmark results as an in-repo reference baseline (rather than living only in prose).

New: docs/benchmarks.md (reference baseline)

Records methodology, host specs, and measured GLUPS for the D3Q19 wind tunnel across CPU / CUDA / OpenCL at two grid sizes, so future runs have a known baseline to compare against.

Grid Backend GLUPS vs CPU
256×128×128 CPU (fp64) 0.038 1.0×
256×128×128 CUDA (fp32) 1.153 30.2×
256×128×128 OpenCL (fp32) 1.153 30.2×

(Full table incl. 160×80×80 in the doc.) Host: i9-12900K (24 threads) + RTX 5060. Plus an indicative cross-machine row vs the Apple M2 Max (~1.35 GLUPS). Linked from README, docs/features.md, and docs/backends.md.

Drift fixes

Where Was Now
docs/features.md CUDA/OpenCL "stubs" / "planned" ✅ validated (~1e-5 vs fp64 oracle), linked to benchmarks
README.md "SciPP powers linear algebra…" (reads as active) wired into the build, not yet linked (matches features.md)
build-and-packaging spec deps "via CMake FetchContent … fetched automatically" actual bootstrap_deps.sh + find_package(NumPP CONFIG) mechanism
build-and-packaging spec Purpose = TBD … update after archive real Purpose
build-and-packaging spec CI requirement: Linux + OpenSpec only + macOS job, + -Wl,--no-as-needed -ltbb detail
build-and-packaging spec (no benchmark requirement) new "throughput benchmark with recorded references" requirement
oracle-validation, external-fields specs Purpose = TBD … placeholder real Purpose

Verification

  • openspec validate --all --strict → 14/14 passed.
  • Benchmark numbers were freshly measured from a clean just bench run on the reference box before recording.
  • No remaining TBD / FetchContent / "stub" drift in living specs or docs.

Bring the docs and living OpenSpec specs back in line with the shipped code and
capture the GPU benchmark results as an in-repo reference baseline.

Benchmark references (new docs/benchmarks.md):
- Methodology, host specs, and recorded GLUPS for the D3Q19 wind tunnel across
  CPU / CUDA / OpenCL, at two grid sizes, on the RTX 5060 + i9-12900K box
  (~1.15 GLUPS on GPU, ~30x the 24-thread CPU; ~78% of the card's DRAM peak).
- Indicative cross-machine row vs the Apple M2 Max (~1.35 GLUPS).
- Linked from README, docs/features.md, and docs/backends.md.

Drift fixes:
- docs/features.md: CUDA/OpenCL were still labelled "stubs" / "planned"; mark
  them validated (they ship and pass ~1e-5 vs the fp64 oracle).
- README: soften the SciPP claim — it is wired into the build but not yet linked
  by any target (matches features.md's "wired, unused").
- build-and-packaging spec: replace the FetchContent auto-fetch requirement with
  the actual bootstrap_deps.sh + find_package(NumPP CONFIG) mechanism; fill the
  TBD Purpose; add the macOS CI job and the -Wl,--no-as-needed -ltbb detail to
  the CI requirement; add a "throughput benchmark with recorded references"
  requirement.
- oracle-validation and external-fields specs: fill their TBD Purpose placeholders.

openspec validate --all --strict passes (14/14).
@leonardoaraujosantos
leonardoaraujosantos merged commit 8aaa972 into main Jul 5, 2026
3 checks passed
@leonardoaraujosantos
leonardoaraujosantos deleted the docs/spec-sync-and-benchmarks branch July 5, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant