pika-org / pika

pika builds on C++ std::execution with fiber, CUDA, HIP, and MPI support.
https://pikacpp.org
Boost Software License 1.0
62 stars 10 forks source link

Test P2300 reference implementation with `nvcc`/`nvc++` #303

Open msimberg opened 2 years ago

msimberg commented 2 years ago

Same as #302, but for nvcc/nvc++.

msimberg commented 2 years ago

For nvc++ this would require this issue to be resolved: https://gitlab.kitware.com/cmake/cmake/-/issues/23003.

msimberg commented 1 year ago

For nvc++ this would require this issue to be resolved: https://gitlab.kitware.com/cmake/cmake/-/issues/23003.

Until the above is resolved I think we could try using nvc++ to compile everything, as we used to do with hipcc. It would let us test with C++20 and stdexec already now.

msimberg commented 1 year ago

nvc++ seems to still not be able to compile a lot of things, even without stdexec, C++20, or even CUDA device code. We may be able to compile the subset that is left after #505 without the algorithms so I'll retry again once that's merged. I'm also looking to see if we can have some sort of workarounds for the things that don't compile...

msimberg commented 1 year ago

nvcc from CUDA 12 at least requires some changes to fmt (it's constexpr detection isn't taking into account the fact that CUDA 12 supports C++20, at least partially). I have not fixed this in fmt (yet) and will come back to it when we try out nvcc from CUDA 12 again hopefully for 0.15.0.