Skip to content

Fix v0.4.0 ARM64 release compatibility and qualification - #74

Merged
leehack merged 4 commits into
mainfrom
fix/arm64-v040-release
Sep 6, 2026
Merged

Fix v0.4.0 ARM64 release compatibility and qualification#74
leehack merged 4 commits into
mainfrom
fix/arm64-v040-release

Conversation

@leehack

@leehack leehack commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Closes #73.
Closes #75.

Scope

Repair upstream v0.4.0 ARM64 release-qualification failures while preserving optimized KleidiAI kernels and zero-patch ownership:

  • Windows ARM64 ClangCL/MARMASM sources receive source-local preprocessing metadata: suppress GNU line markers and select the existing MSVC assembly dialect. Restore the eleven ClangCL-compatible C kernels referenced by ggml but omitted from standalone KleidiAI's MSVC source list, with upstream per-source ISA flags rather than a global baseline increase.
  • Android ARMv8.2 qualification distinguishes runtime-dispatched KleidiAI kernels from accidental scalable-ISA leakage using exact ELF function ranges plus complete reviewed ggml/Kleidi source fingerprints. Legacy no-scalable-code artifacts keep the strict path; changed or unknown dispatch code fails closed.

Regression prevention

Added pinned/v0.4.0 Windows ARM64 builds, Android actual release-variant artifact auditing, and actual compiled selectors plus quantized matmul on two non-SVE QEMU CPU profiles to PR CI. Synthetic feature masks never execute unsupported instructions. The containment audit is not a formal call-graph proof, and emulation is not GPU or physical-device performance evidence.

Release wrapper assertions now remain active, with compile-time guards against silent removal. Windows CTest resolves both DLL directories and enforces a 120-second per-test timeout. Issue #75 records the pre-existing assertion weakness exposed by this new qualification lane, not a claimed shipped runtime regression.

Validation

  • PASS: 116 local Python tests, provenance fixtures, actionlint, and diff check.
  • PASS at final candidate 188346e: actual macOS arm64 optimized Release builds against both pinned v0.3.0 and candidate v0.4.0, each with all three wrapper/TTS/mtmd CTests and assertions active.
  • PASS: actual NDK 28.2.13676358 Android v0.4.0 CPU library compiled; original and stripped artifacts audited: 256187 instructions, 2187 SVE/SME instructions confined to 18 reviewed functions.
  • PASS: Pixel 9 Pro / Android 17, all 64 feature masks and negative tensor paths; Q4_0 and Q8_0 16x1x64, 16x4x64, 16x9x64 computations match scalar reference using real I8MM KleidiAI repacking. Pixel reports SVE support, so this is not non-SVE hardware evidence. Temporary qualification files were removed; app data was untouched.
  • PASS at final candidate 188346e: hosted non-SVE QEMU cortex-a53 baseline fallback and max,sve=off,sme=off optimized KleidiAI repacking computations; all 64 selector masks and six scalar-reference computations per profile.
  • PASS at final candidate 188346e: Windows ARM64 pinned v0.3.0 and candidate v0.4.0 compile/link and all three Release CTests (0.17s and 0.15s respectively); exact Android release-variant audit; Linux x64/arm64 archive and clean-load contracts; x64 MSVC mtmd link; pinned/candidate wrapper contracts; provenance and Python 3.10 tooling.
  • No GGUF model or GPU claim is made for these arithmetic/dispatch tests.

Exact-head readiness

Independent Astra adversarial QA PASS at 188346e, no blocking code findings. All 11 populated hosted checks PASS: Validate Wrapper and Validate Release Provenance. Zero known PR-caused P1 regressions and zero unresolved review threads. Earlier Windows PR CI exposed assembler-dialect and missing kernel-definition errors; aa27406 fixes the former and 9b6a6af fixes the latter. Superseded failed/cancelled runs are not counted as passes. Two superseded still-running test jobs were cancelled after replacement validation existed; current-head checks completed normally.

The isolated worktree is clean, matches the remote branch, and is 0 behind / 4 ahead of main b244945. Validation-only upstream checkouts have been restored to the tracked pin. Technically ready for explicit merge approval; remains draft.

Boundaries

No tracked submodule/pin change, upstream source patch, publication, or manual release dispatch. Default native remains unchanged. Merge remains a separate approval boundary. Normal automatic release qualification may run after an approved merge.

@leehack
leehack marked this pull request as ready for review September 6, 2026 12:55
@leehack
leehack merged commit 59ce932 into main Sep 6, 2026
11 checks passed
@leehack
leehack deleted the fix/arm64-v040-release branch September 6, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant