Fix type instability in copyto_stencil_kernel!
#1850
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes the
window
variable incopyto_stencil_kernel!
, and instead, uses different windows depending ongid
.I'm actually not sure how the gpu even allows this block of code:
because
window
depends on the value ofidx
idx
depends on the value ofv
v
depends on the value ofgid
gid
depends on the individual thread, which is most definitely non-deterministicThe only way I could see this being type stable is if the compiler can determine that all three branches result in the same return type, and that, then, it doesn't matter what the value of
window
will be within the scope ofcopyto_stencil_kernel!
.This is surprising to me. Any insights @vchuravy?