You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reproduces on trunk, and in an attempt to bisect this (as the user report indicated this was a new failure) I kept on running into the assertion going back to LLVM from 2016, so it looks like this has always been here?
The text was updated successfully, but these errors were encountered:
Thanks. FWIW, I only noticed this now because we used to pass kernel arguments as byval pointers, which doesn't trigger this assertion, but had to disable that due to performance issues (which I probably should revisit given your recent work on that).
If the original issue with byval arguments was that it resulted in LLVM keeping their copies in local memory, then you may want to revisit that approach. There were some recent NVPTX back-end improvements that help eliminate the local copies in many more cases. If all access are reads and are not hidden behind conditional control flow, LLVM should access the parameter directly, not its local copy.
Passing i128 as a scalar is going to be tricky as PTX does not have 128-bit integer type. We may need to add some glue to pack it as a byval struct or split it into two 64-bit arguments. I'm unlikely to get to it any time soon.
Extended Description
The following snippet, reduced from a user report at JuliaGPU/CUDA.jl#793, results in a failed assertion:
https://godbolt.org/z/sa7ar8esP
Reproduces on trunk, and in an attempt to bisect this (as the user report indicated this was a new failure) I kept on running into the assertion going back to LLVM from 2016, so it looks like this has always been here?
The text was updated successfully, but these errors were encountered: