-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
I'm working on a significant revamp of the way that kernels are implemented in the project as discussed on the mailing list. PR to follow within the next week or sooner
A brief list of features:
-
Kernel selection that takes into account the shape of inputs (whether Scalar or Array, so you can provide an implementation just for Arrays and a separate one just for Scalars if you want)
-
More customizable / less monolithic type-to-kernel dispatch
-
Standardized C++ function signature for kernel implementations (rather than every one being a little bit special)
-
Multiple implementations of the same function can coexist (e.g. with / without SIMD optimizations) so that you can choose the one you want at runtime
-
Browsable function registry (see all available kernels and their input type signatures)
-
Central code path for type-checking and argument validation
-
Central code path for kernel execution on ChunkedArray inputs
There's a lot of JIRAs in the backlog that will follow from this work so I will attach those to this issue for visibility but this issue will cover the initial refactoring work to port the existing code to the new framework without altering existing features.
Reporter: Wes McKinney / @wesm
Assignee: Wes McKinney / @wesm
Related issues:
- [C++] Implement n-ary iterator for a collection of chunked arrays with possibly different chunking layouts (relates to)
- [C++] C++ array kernels framework and execution buildout (umbrella issue) (is related to)
- [C++] Promote Datum variant out of compute namespace (is related to)
PRs and other links:
Note: This issue was originally created as ARROW-8792. Please see the migration documentation for further details.