NVIDIA / cccl

CUDA Core Compute Libraries
https://nvidia.github.io/cccl/
Other
1.21k stars 150 forks source link

include-stdpar headers break atomics on Circle #1013

Open seanbaxter opened 1 year ago

seanbaxter commented 1 year ago

I posted this issue to the stdexec repo, but as I do more digging it's clear it's a libcudacxx issue. https://github.com/NVIDIA/stdexec/issues/866

Flipping -stdpar breaks my atomics. It appears that I have to define __PGIC__ in order to enable_LIBCUDACXX_COMPILER_PGI in order to enable _LIBCUDACXX_HAS_CUDA_ATOMIC_IMPL in order to include atomic_cuda.h from atomic. Is pretending to be a PGI compiler the only way to get stdpar working?

griwes commented 1 year ago

This is a libcu++ "issue" only in the sense that libcu++ doesn't know about Circle (which shouldn't be surprising, as it's not in our support matrix). If you want it to learn about Circle, you are welcome to submit a patch. If you don't want to do that, you will have to make your compiler pretend it is one of the ones we currently detect as CUDA compilers for the code in question to work for you.

miscco commented 1 year ago

I wan to note that there are a lot of small knobs that you need to potentially set if you want to support your own configuration. In our config there are a lot places you would need to adopt.

Out of curiosity, what is the compiler identification macro for circle?