Towards shared memory consistency models for GPUs


With the widespread use of graphical processing units (GPUs), it is important to ensure that programmers have a clear understanding of their shared memory consistency model,i.e. what values can be read when issued concurrently with writes. Compared to CPUs, GPUs present different shared memory behavior, and we know of no published formal consistencymodel for them. To fill this void, we establish a formalstate transition model of GPU loads, stores, and fences in the language Murphi [2], and check properties – captured in litmus tests that pertain to ordering and visibility properties – over executions using the Murphi model checker.