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

Rebase on KokkosFFT #655

Merged
merged 3 commits into from
Oct 8, 2024
Merged

Rebase on KokkosFFT #655

merged 3 commits into from
Oct 8, 2024

Conversation

tpadioleau
Copy link
Member

@tpadioleau tpadioleau commented Sep 23, 2024

closes #502

based on #544

KokkosFFT requests:

  • remove CMakeLists.txt from installed headers
  • allow to install with --prefix
  • allow to pass const Views
  • workaround gcc -Warray-bounds warning defect
  • how to know if KokkosFFT_ENABLE_HOST_AND_DEVICE is available ? rely on TPL variables
  • wait for release v0.2.1

@tpadioleau tpadioleau self-assigned this Sep 23, 2024
@tpadioleau tpadioleau force-pushed the tpadiole-rebase-kokkos-fft branch 20 times, most recently from 712386a to 629953f Compare September 25, 2024 19:29
@tpadioleau tpadioleau force-pushed the tpadiole-rebase-kokkos-fft branch 9 times, most recently from 839aa84 to 77161a8 Compare October 4, 2024 06:24
@tpadioleau tpadioleau marked this pull request as ready for review October 4, 2024 16:10
acalloo
acalloo previously approved these changes Oct 4, 2024
Copy link
Member

@acalloo acalloo left a comment

Choose a reason for hiding this comment

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

Seems ok to me.
Cloned, checked branch: compiled and ran tests. All good.

Copy link
Member

@jbigot jbigot left a comment

Choose a reason for hiding this comment

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

Didn't have time to fully look at include/ddc/kernels/fft.hpp, but I'm not sure if and when I ever will, so here are a few minor remarks.

Overall, great work, looks really great to me.

cmake/DDCConfig.cmake.in Outdated Show resolved Hide resolved
include/ddc/kernels/fft.hpp Show resolved Hide resolved
include/ddc/kernels/fft.hpp Show resolved Hide resolved
@yasahi-hpc
Copy link
Member

LGTM.
I have two comments.

  1. In fft.hpp, it is not clear what are APIs. I would recommend to introduce Impl namespace and move all implementation details inside it.
  2. In test.cpp, it seems that both norm and fft are not tested for GPUs.
    Can we rely on Kokkos::DefaultExecutionSpace and/or Kokkos::DefaultHostExecutionSpace?
    For example,
test_fft_norm<
            Kokkos::DefaultExecutionSpace,
            Kokkos::DefaultExecutionSpace::memory_space,
            float,
            Kokkos::complex<float>,
            RDimX>(ddc::FFT_Normalization::OFF);

@tpadioleau
Copy link
Member Author

tpadioleau commented Oct 6, 2024

LGTM. I have two comments.

  1. In fft.hpp, it is not clear what are APIs. I would recommend to introduce Impl namespace and move all implementation details inside it.

Do you mean that we rename ddc::detail to ddc::Impl ? Unless we missed some functions, internals should be in the ddc::detail namespace.

  1. In test.cpp, it seems that both norm and fft are not tested for GPUs.
    Can we rely on Kokkos::DefaultExecutionSpace and/or Kokkos::DefaultHostExecutionSpace?

I think we do actually, see

TEST(FftParallelDevice, R2cIn1d)

Did you identify a missing variant ?

@yasahi-hpc
Copy link
Member

LGTM. I have two comments.

  1. In fft.hpp, it is not clear what are APIs. I would recommend to introduce Impl namespace and move all implementation details inside it.

Do you mean that we rename ddc::detail to ddc::Impl ? Unless we missed some functions, internals should be in the ddc::detail namespace.

I got it. Then, it is good for me.

  1. In test.cpp, it seems that both norm and fft are not tested for GPUs.
    Can we rely on Kokkos::DefaultExecutionSpace and/or Kokkos::DefaultHostExecutionSpace?

I think we do actually, see

TEST(FftParallelDevice, R2cIn1d)

Did you identify a missing variant ?

I just have a look at the difference and did not notice it is already there. If DDC does not support Threads backend, it is good.

@tpadioleau
Copy link
Member Author

I just have a look at the difference and did not notice it is already there. If DDC does not support Threads backend, it is good.

Not yet indeed, there should not be much work to do to support it though. I will open an issue about it.

@tpadioleau tpadioleau merged commit eb57815 into main Oct 8, 2024
56 checks passed
@tpadioleau tpadioleau deleted the tpadiole-rebase-kokkos-fft branch October 8, 2024 08:24
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.

Rebase on KokkosFFT
4 participants