Memref dialect: volatile and atomic accesses

Hi All -

Regarding the memref dialect load and store and related operations I couldn’t tell if the spec requires these to be implemented as if volatile and atomic (llvm does have volatile qualifiers) ?

Is this an oversight or work in progess?

more fundamentally the execution model of llvm was a single thread executing the IR. However for GPUs some operations are collective and it is not clear how the various builtin dialects specify such requirements?

Thanks
Vinod

Practically, these lower to non-atomic non-volatile operations in all upstream flows. A better memory model likely falls into the “nobody needed it enough to implement” category ( FAQ - MLIR ).

@wsmoses and I have looked into modeling GPU synchronizations via side effects assuming structured control flow, similar modeling is likely possible for collectives.