[diskann-wide] Add sumtree for 64-bit types - #1311
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extends diskann-wide’s reduction support by adding SIMDSumTree as a requirement and providing implementations/tests for 64-bit integer SIMD vectors (u64x2, u64x4, plus i64x2 on Neon). This supports upcoming AVX-512 1-bit kernel work by making horizontal lane-sum reductions uniformly available for these types.
Changes:
- Add
Emulated<i64, {2,4}>andEmulated<u64, {2,4}>SIMDSumTreeimplementations and corresponding tests. - Implement
SIMDSumTreefor x86_64u64x2/u64x4for both V3 (direct intrinsics) and V4 (retargeting to V3). - Add Neon
SIMDSumTreeimplementations foru64x2andi64x2, and requireSIMDSumTreeforu64x2/u64x4in theArchitecturetrait.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| diskann-wide/src/emulated.rs | Adds sum-tree reductions + tests for emulated i64/u64 vectors (2/4 lanes). |
| diskann-wide/src/arch/x86_64/v4/u64x4_.rs | Adds SIMDSumTree for u64x4 (V4), plus a reduction test. |
| diskann-wide/src/arch/x86_64/v4/u64x2_.rs | Adds SIMDSumTree for u64x2 (V4), plus a reduction test. |
| diskann-wide/src/arch/x86_64/v3/u64x4_.rs | Adds an intrinsic-based SIMDSumTree implementation for u64x4 (V3), plus a test. |
| diskann-wide/src/arch/x86_64/v3/u64x2_.rs | Adds an intrinsic-based SIMDSumTree implementation for u64x2 (V3), plus a test. |
| diskann-wide/src/arch/mod.rs | Requires SIMDSumTree on the Architecture trait’s u64x2 and u64x4 vectors. |
| diskann-wide/src/arch/aarch64/u64x2_.rs | Adds Neon SIMDSumTree for u64x2 (with Miri fallback) + test. |
| diskann-wide/src/arch/aarch64/i64x2_.rs | Adds Neon SIMDSumTree for i64x2 (with Miri fallback) + test. |
| diskann-wide/src/arch/aarch64/double.rs | Adds a sum-tree test for u64x4 (implemented via Doubled<T>’s SIMDSumTree). |
💡 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 (71.42%) 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 #1311 +/- ##
=======================================
Coverage 91.46% 91.47%
=======================================
Files 516 516
Lines 98276 98297 +21
=======================================
+ Hits 89891 89914 +23
+ Misses 8385 8383 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Add
SIMDSumTreerequirement/impls foru64x2andu64x4types (and for the currently one-offi64x2in Neon).This is part of a series of PRs for better AVX-512 1-bit kernels.
AI Disclaimer: the author cannot currently type well, a directed agent did most of the changes. Fortunately, most are mechanical.