MasterJH5574 opened a new pull request, #14199:
URL: https://github.com/apache/tvm/pull/14199

   Prior to this PR, the cross-thread reduction lowering pass does not add a 
store predicate to the write-back block. This is in consideration that for a 
certain write-back buffer position, all values being stored (by all the 
threads) in the write-back block are the same. Since all threads are writing 
the same value, we were assuming that not having a write-back block predicate 
is fine, because the result will not be wrong in any way.
   
   However, recently we noticed that some GPU backend compiler will capture 
this behavior (multiple threads writing a same position) as a race condition 
and thus throw compilation error. The compiler does not take the fact that all 
values being stored are the same, and insist on complaining.
   
   This means that we will still need the write-back block predicate to make 
things work. And this PR does this change. I have done integration tests 
locally to make sure that the generated kernels is right and produces the right 
results numerically.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to