Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[C++] Improved declarative compute function / kernel development framework, normalize calling conventions #24937

Closed
asfimport opened this issue May 13, 2020 · 1 comment

Comments

@asfimport
Copy link

asfimport commented May 13, 2020

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:

PRs and other links:

Note: This issue was originally created as ARROW-8792. Please see the migration documentation for further details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants