Open Quuxplusone opened 4 years ago
Attached temps.txz
(327632 bytes, application/x-xz-compressed-tar): Temporary files from clang++ (host: preprocessed source .ii, assembly .s; nvptx: preprocessed source .ii))
Cannot select means a missing pattern in dagtodag. Provided nvptx can do atomic cmpswap on i16 this should be a simple fix. I don't know the ISA so am reluctant to volunteer to fix.
There are two sides to this issue:
1. CUDA 11 supports CAS int16:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#atomiccas
2. No other operation is supported for int16 and no atomics are supported on
int8. It may be, that this same ICE would be hit for any of these cases too.
There should be an error message stating, that the atomic in question is not
supported on this type by the backend.
@Artem, is this known to be missing in our backend or is there more to it?
@Artem, is this known to be missing in our backend or is there more to it?
Most likely. There wasn't much work done to bring in support for the new instructions (or variants of the existing ones) added by recent CUDA versions. We've recently added mbarrier and cp_async, but that's about it.
Support for atomics in NVPTX back-end in general is known to have holes. I believe there's a bug open for it already, but I can't find it at the moment.
temps.txz
(327632 bytes, application/x-xz-compressed-tar)