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

Re-add 2x missing CMake IMPL_ flags to the Wiki #585

Merged
merged 15 commits into from
Sep 28, 2024

Conversation

felker
Copy link
Contributor

@felker felker commented Sep 26, 2024

Following a discussion with @masterleinad over Slack.

The BUILD.md in the Kokkos source repo used to list (all?) Kokkos_ prefixed CMake options, until April 2023 when it started to refer readers to the Wiki page: kokkos/kokkos@83873a6#diff-40f60e1037245d7b8a98a7325d53890a717da9979adeb54a61a795c4ba07f9c9R114

Both Kokkos_ENABLE_IMPL_HPX_ASYNC_DISPATCH and Kokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC weren't carried over to the Wiki at the time. The latter is especially confusing, given its changing default settings and issues with Cray MPICH on NERSC Perlmutter, ALCF Polaris, and LANL Venado, etc. kokkos/kokkos#7353

I have re-added them, plus added two other helpful CMake comments that @masterleinad had relayed to ALCF folks recently.

I manually diff'd the pre-April 2023 BUILD.md and the current Wiki page, and found several other flags that also didnt make the transition. Not sure if all of them were removed or deprecated, but here they are:

* Kokkos_ENABLE_IMPL_HPX_ASYNC_DISPATCH
    * Whether HPX supports asynchronous dispatch
    * BOOL Default: ON
* Kokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC
    * Whether to enable CudaMallocAsync (requires CUDA Toolkit 11.2). This is an experimental performance feature and currently has issue when using with UCX. See https://github.com/kokkos/kokkos/issues/4228 for more details.
    * BOOL Default: OFF

* Kokkos_ENABLE_PROFILING_LOAD_PRINT
    * Whether to print information about which profiling tools gotloaded
    * BOOL Default: OFF

* Kokkos_ENABLE_LIBNUMA
    * Whether to enable the LIBNUMA library
    * BOOL Default: Off
* Kokkos_ENABLE_MEMKIND
    * Whether to enable the MEMKIND library
    * BOOL Default: Off
* Kokkos_ENABLE_LIBRT
    * Whether to enable the LIBRT library
    * BOOL Default: Off

* Kokkos_LIBNUMA_DIR or LIBNUMA_ROOT
    * Location of LIBNUMA install prefix
    * PATH Default:
* Kokkos_MEMKIND_DIR or MEMKIND_ROOT
    * Location of MEMKIND install prefix
    * PATH Default:
* Kokkos_LIBRT_DIR or LIBRT_ROOT
    * Location of LIBRT install prefix
    * PATH Default:

Copy link
Member

@dalg24 dalg24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Their removal was not an accident but I agree that we need to reintroduce IMPL_CUDA_MALLOC_ASYNC.

I am fine with mentioning IMPL_HPX_ASYNC_DISPATCH as well.

Comment on lines 239 to 241
Any CMake keywords containing `IMPL` can fundamentally alter the underlying implementation
of Kokkos on a given backend. It is encouraged not to set these unless the user knows what
they are doing can accept the behavior changing without warning.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can fundamentally alter the underlying implementation of Kokkos on a given backend

We should make it a general warning right after the note suggesting that users can use ccmake to discover the list of options. It is not specific to backend options. Essentially, anything that says IMPL is considered private implementation detail and we reserve the right to change at anytime without prior notice.

@nliber would you please add a section on CMake variables in the compatibility guidelines

felker and others added 8 commits September 26, 2024 14:47
Co-authored-by: Damien L-G <dalg24+github@gmail.com>
Co-authored-by: Damien L-G <dalg24+github@gmail.com>
Co-authored-by: Daniel Arndt <arndtd@ornl.gov>
Co-authored-by: Daniel Arndt <arndtd@ornl.gov>
Co-authored-by: Daniel Arndt <arndtd@ornl.gov>
@felker
Copy link
Contributor Author

felker commented Sep 26, 2024

Fixed all issues

@dalg24 dalg24 merged commit 0443e79 into kokkos:main Sep 28, 2024
2 checks passed
@felker felker deleted the hotfix/missing-cmake-flags branch September 30, 2024 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants