Repository navigation
Widen list take piece bounds to u64 before dispatch - #10738
robert3005 wants to merge 1 commit into
Conversation
The piecewise list take compiled its gather kernels for every combination of piece start, piece length, list offset and output offset type (4 x 4 x 4 x 4). The kernels read each piece start and length only once per piece, so the take now widens them to u64 and dispatches only on the offset types. The widening does not copy when the pieces are already u64, which is the type that the list take produces. vortex-array release __text: 14,012,988 -> 12,798,204 bytes (-1.21 MB). Signed-off-by: Robert Kruszewski <robert@spiraldb.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eb7a1f1 to
5d7e3b8
Compare
Merging this PR will regress 7 benchmarks3 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
The list take by
PiecewiseSequencecompiled its gather kernels for every combination of piece start, piece length, list offset and output offset type (4 x 4 x 4 x 4). The kernels read each piece start and length only once per piece. The inner loop over list offsets depends only on the offset types. The take now widens the starts and lengths tou64and dispatches only on the offset types.The widening does not copy when the pieces are already
u64, which is the type that the list take itself produces. For other widths it copies the piece arrays once. That copy is proportional to the number of pieces, not to the number of elements.vortex-arrayrelease__text(macOS arm64)