pika
pika copied to clipboard
Test P2300 reference implementation with `nvcc`/`nvc++`
Same as #302, but for nvcc/nvc++.
- [x] nvc++ (#606)
- [ ] nvcc (requires CUDA 12)
For nvc++
this would require this issue to be resolved: https://gitlab.kitware.com/cmake/cmake/-/issues/23003.
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.
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...
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.
Lowering the priority of this. The remaining part of this task requires support for nvcc in stdexec, and that simply does not work yet. The only thing applications can do now is not include stdexec/<pika/execution.hpp>
in nvcc compilation.