It should be possible to not require volatile overloads of members on reduction value types, which opens the door to using standard instead of custom types and greatly simplifies user types. It also allows us to better satisfy C++ concepts regarding "trivial" types etc.
PLEASE PLEASE
Assuming this is the bug we talked about on the meeting today, I get all tests passing on both white and apollo if I just remove the two uses of volatile in Kokkos_Cuda_ReduceScan.hpp (with no other changes). I've run the tests repeatedly and nothing seems to break. Does anyone have any test results that indicate otherwise? What am I missing?
Pinging @crtrott and @dsunder for clarification
Never mind, I was able to reproduce errors by removing volatile overloads from Kokkos_FunctorAdapter.hpp
Most helpful comment
PLEASE PLEASE