[diskann-wide] Add u64x8 - #1312
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new 8-lane u64 SIMD vector (u64x8) across backends to support wider 64-bit unsigned operations, aligning with ongoing work toward improved 1-bit ops on AVX-512.
Changes:
- Extend the
Architecturetrait withu64x8and its associated mask type (mask_u64x8). - Implement
u64x8for x86_64 V3 (viaDoubled<u64x4>) and x86_64 V4 (native__m512iAVX-512). - Add emulated and AArch64 double-wide support plus reduction/split-join coverage for
u64x8.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| diskann-wide/src/emulated.rs | Adds Emulated<{i64,u64}, 8> sum-tree support and Emulated<u64, 8> split/join plumbing with tests. |
| diskann-wide/src/arch/x86_64/v4/u64x8_.rs | New native AVX-512 u64x8 implementation (ops, load/store, comparisons, sum-tree) with tests. |
| diskann-wide/src/arch/x86_64/v4/mod.rs | Registers the new V4 u64x8 module via maybe_miri!. |
| diskann-wide/src/arch/x86_64/v3/u64x8_.rs | Adds V3 u64x8 as a doubled vector over u64x4 with tests. |
| diskann-wide/src/arch/x86_64/v3/mod.rs | Exposes the new V3 u64x8 module/type. |
| diskann-wide/src/arch/x86_64/v3/masks.rs | Adds doubled-mask support needed for u64x8 masks in the doubled backend. |
| diskann-wide/src/arch/mod.rs | Extends Architecture with mask_u64x8 and u64x8 vector definition. |
| diskann-wide/src/arch/emulated/mod.rs | Exposes u64x8 for the emulated/scalar backend. |
| diskann-wide/src/arch/aarch64/mod.rs | Re-exports AArch64 u64x8 from the double-wide module. |
| diskann-wide/src/arch/aarch64/double.rs | Adds AArch64 u64x8 double-double alias, mask support, and tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (69.23%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #1312 +/- ##
==========================================
- Coverage 91.26% 91.26% -0.01%
==========================================
Files 517 519 +2
Lines 98511 98550 +39
==========================================
+ Hits 89910 89944 +34
- Misses 8601 8606 +5
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Another step towards better 1-bit ops on AVX512.