Repository navigation
Compare primitive values through the shared RowFn executor - #10676
connortsui20 wants to merge 1 commit into
Conversation
Merging this PR will regress 9 benchmarks4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
dee1a57 to
3a38935
Compare
3a38935 to
33ccf9b
Compare
33ccf9b to
b837021
Compare
|
Edit: reopened as a draft. The controlled measurements showed substantial AVX2 gains as well as ARM and AVX-512 regressions. Those results justify holding the PR for further work, but do not establish that the migration has no benefit. The earlier closure treated those two conclusions as equivalent. #10741 isolates a useful float32 packing policy, and #10742 explores a smaller validity change. Neither replaces every benefit observed in the migration. Both remain independent drafts with their own measurement limits. #10675 and this PR are being rebased while preserving their dependency. The saved measurements are historical evidence, not validation of the rebased heads. |
Keep the primitive kernel focused on type and operator dispatch. Delegate borrowed inputs, constants, strict validity, and packed Boolean output to the lower stack layers while preserving Binary identity and floating-point total ordering. Replaces the comparison migration in #9979. Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
b837021 to
3583fc2
Compare
Summary
Replaces the primitive comparison migration in #9979, using the shared executor from #10675. This PR depends on #10675 and has been replayed onto its rebased head
7c47d4bcfee3370684c1b22de999e61f66628afa.Reopened as a draft. The controlled measurements showed substantial AVX2 gains as well as ARM and AVX-512 regressions. They justify further work before merging, but do not establish that this migration has no benefit. #10741 isolates some float32 packing gains without this migration, while #10742 explores a smaller validity change. Neither is a complete replacement for every observed benefit here.
Changes
The private row kernel selects the primitive type and comparison operator. The framework owns borrowed inputs, constant handling, strict validity, and packed Boolean output. Removes the primitive operand wrapper and handwritten primitive kernels while preserving the public
Binaryidentity and Vortex's floating-point total ordering.Native Graviton3 measurements showed regressions when this migration used only #10673. Removing only the fused-execution patch while keeping all three foundations also slowed the tested comparisons. The dependency on #10675 keeps that execution work available when this migration merges.
Existing comparison tests exercise the shared executor. Source range-diff review confirms that the migration patch is unchanged by the rebase. Tests, formatting, and benchmarks were not rerun on the rebased head, so earlier measurements are not validation of this revision.