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

Necessity of both KokkosKernels_ENABLED_COMPONENTS and KokkosKernels_ENABLE_...? #2071

Open
cwpearson opened this issue Dec 13, 2023 · 6 comments
Assignees

Comments

@cwpearson
Copy link
Contributor

We have this guy:

  • KokkosKernels_ENABLED_COMPONENTS

And also these guys:

  • KokkosKernels_ENABLE_ALL_COMPONENTS
  • KokkosKernels_ENABLE_BATCHED
  • KokkosKernels_ENABLE_BLAS
  • KokkosKernels_ENABLE_LAPACK
  • KokkosKernels_ENABLE_SPARSE
  • KokkosKernels_ENABLE_GRAPH
  • KokkosKernels_ENABLE_ODE
@cwpearson cwpearson self-assigned this Dec 13, 2023
@cwpearson
Copy link
Contributor Author

I think KokkosKernels_ENABLED_COMPONENTS is just used in kokkoskernels_tribits.cmake to check if all the components requested by Trilinos (?) are inside this variable.

It probably makes more sense for this code to be reworked to check the KokkosKernels_ENABLE family of options instead, and drop KokkosKernels_ENABLED_COMPONENTS entirely?

@cwpearson
Copy link
Contributor Author

Any insight re the Trilinos integration @ndellingwood?

@ndellingwood
Copy link
Contributor

@cwpearson so the options were originally named as you posted (i.e. KokkosKernels_ENABLE_BLAS etc), but in Trilinos builds there was some TriBITs variable naming and interaction that overlapped with the KokkosKernels naming but occurred prior to processing of the KokkosKernels_ENABLE_{Component} macros, in particular this resulted in enable of KokkosKernels_ENABLE_BLAS specifically which broke with the cmake logic with the way individually enabled processed components were enabled - basically the default with Trilinos was that BLAS was enabled and no other component

@ndellingwood
Copy link
Contributor

Here is cross-reference to the PR with the renaming of the options to workaround the overload/naming collision with TriBITS: #1641

@ndellingwood
Copy link
Contributor

@cwpearson my first read of the question may have been a misinterpretation - you're talking specifically about KokkosKernels_ENABLED_COMPONENTS and not the individual options e.g. KokkosKernels_ENABLE_COMPONENT_BLAS ?
If you'd prefer to remove KokkosKernels_ENABLED_COMPONENTS, but ensure the cmake logic with Trilinos builds holds such that the default behavior is that all components are enabled unless specific individual options are provided, please do so 👍

@ndellingwood
Copy link
Contributor

Documentation-wise, we do need to update https://github.com/kokkos/kokkos-kernels/wiki/Building#component-options for the individual components

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