Skip to content

Relax dimension padding requirements from 64 to 32 - #133

Merged
gouyt13 merged 4 commits into
mainfrom
new-padding-requirement
Oct 8, 2026
Merged

gouyt13 merged 4 commits into
mainfrom
new-padding-requirement

Conversation

@gouyt13

@gouyt13 gouyt13 commented Oct 8, 2026

Copy link
Copy Markdown
Member

Summary

Relax dimension padding requirements from multiples of 64 to multiples of 32 across FHT/Kac rotation and the indexes, reducing padding overhead (e.g. 65 dimensions now pad to 96 instead of 128). Update SIMD tails and simplify shared kernels while preserving historical pad64 code layouts and index loading.

IVF now stores an explicit padded dimension in a versioned header; legacy quantized and raw-v1 files remain readable.

Testing

Validated on Linux x86-64, Xeon Gold 6418H, GCC 14.3:

  • C++: 310 passed, 1 conditional skip in each of portable Release, native Release, and ASan/UBSan/LeakSanitizer builds; no sanitizer errors.
  • Python: 825 passed, 2 platform skips, including legacy pad64 persistence and nonzero-query checks.
  • C++ examples, installed CMake consumer, formatting/lint, full clang-tidy, and strict documentation build passed.

ARM/NEON runtime and performance validation, Windows, and macOS were not rerun in this validation pass.

@gouyt13
gouyt13 merged commit e1a50ad into main Oct 8, 2026
37 checks passed
@gouyt13
gouyt13 deleted the new-padding-requirement branch October 8, 2026 07:57
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