Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
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.
Attachments
Issue Links
- is related to
-
ARROW-8894 [C++] C++ array kernels framework and execution buildout (umbrella issue)
- Open
-
ARROW-4022 [C++] Promote Datum variant out of compute namespace
- Resolved
- relates to
-
ARROW-3134 [C++] Implement n-ary iterator for a collection of chunked arrays with possibly different chunking layouts
- Resolved
- links to