Skip to content

build(x86): Default-BACKENDS auf "cpu_x86 cpu_scalar" — Opt-in-Phase beendet (#108) - #109

Merged
geisten merged 1 commit into
mainfrom
build/x86-default-backends-108
Jul 14, 2026
Merged

build(x86): Default-BACKENDS auf "cpu_x86 cpu_scalar" — Opt-in-Phase beendet (#108)#109
geisten merged 1 commit into
mainfrom
build/x86-default-backends-108

Conversation

@geisten

@geisten geisten commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Setzt #108 um: Wer auf x86 schlicht make tippt, bekommt jetzt den nativen cpu_x86-Pfad statt des ~200× langsameren Scalar-Pfads.

Begründung (die alten Flip-Kriterien sind übererfüllt)

  • Gemma/Llama: matches-to-beats llama.cpp; BitNet: +61 % / +90 % vs bitnet.cpp (benchmark/BENCHMARK_X86.md)
  • Kein Portabilitäts-Delta: CFLAGS_TARGET war auf x86 ohnehin -march=x86-64-v3; alle AVX-512-Tiers sind laufzeit-gegated (cpu_x86: SIGILL auf x86-64-v3-CPUs ohne AVX-512 — alle AVX-512-Kernel im Forward-Pass laufzeit-gaten #96) mit permanentem GEIST_FORCE_ISA=avx2-CI-Gate
  • Der referenzierte Spec-Doc (docs/LINUX_X86_SPEC.md) existiert nicht mehr — Kommentar war doppelt veraltet (Header behauptete sogar „x86_64 not supported yet")

Änderungen

  • mk/target-linux.mk: BACKENDS ?= cpu_x86 cpu_scalar auf x86_64; Header + Sektions-Kommentar neu geschrieben
  • benchmark/BENCHMARK_X86.md: Reproduce-Rezept braucht kein BACKENDS= mehr

Nicht betroffen

CI- und Release-Jobs setzen BACKENDS alle explizit (inkl. des cpu_scalar-Referenz-Jobs, der weiterhin explizit Scalar forciert) — für sie ändert sich nichts.

Verifikation

  • make clean && make TARGET=linux (Defaults): Registry auto-pickt cpu_x86, test-unit 40 passed / 0 failed
  • Gegenprobe BACKENDS=cpu_scalar: Build + test-unit grün (28 passed; x86-Kernel-Tests korrekt ausgefiltert)

Closes #108

🤖 Generated with Claude Code

The opt-in gate ('until the Phase-2 win criteria are measured', pointing at
a spec doc that no longer exists) is long met: matches-to-beats llama.cpp on
Gemma/Llama, beats bitnet.cpp +61%/+90% on BitNet (benchmark/BENCHMARK_X86.md),
all AVX-512 kernels runtime-gated behind hw_probe/cpuid (#96, x86-64-v3 stays
the only hardware floor), CI x86 int/e2e strand required incl. the
GEIST_FORCE_ISA=avx2 portability gate. A plain 'make' on x86 shipped the
~200x slower scalar path - the same trap #102 fixed in bench_perf_sweep.

- mk/target-linux.mk: flip + rewrite the stale header ('x86_64 not supported
  yet') and section comment
- benchmark/BENCHMARK_X86.md: reproduce recipe no longer needs BACKENDS=
- CI/release unaffected (all x86 jobs set BACKENDS explicitly; the
  cpu_scalar reference job keeps forcing cpu_scalar)

Verified: make clean && make TARGET=linux (defaults) -> registry auto-picks
cpu_x86, test-unit 40 passed; BACKENDS=cpu_scalar counter-build green
(28 passed, x86 kernel tests correctly filtered out).

Closes #108

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@geisten
geisten merged commit 17a06fa into main Jul 14, 2026
9 checks passed
@geisten
geisten deleted the build/x86-default-backends-108 branch July 14, 2026 09:12
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.

build(x86): Default-BACKENDS auf "cpu_x86 cpu_scalar" umstellen — Opt-in-Phase ist vorbei

1 participant