GPU_PTX mp_volatile+membar.ctas-p0:p1-xsys {} P0 | P1 ; mov.s32 r0, 1 | ld.volatile.s32 r0, [r1] ; st.volatile.s32 [r1], r0 | membar.cta ; membar.cta | ; mov.s32 r2, 1 | ld.volatile.s32 r2, [r3] ; st.volatile.s32 [r3], r2 | ; exists (1:r0=1 /\ 1:r2=0) (device (kernel (cta (warp P0) (warp P1)))) y:local; x:local Generated assembler //START _litmus_P1 ld.volatile.s32 sr01, [sr11] ; membar.cta ; ld.volatile.s32 sr21, [sr31] ; //START _litmus_P0 mov.s32 sr00, 1 ; st.volatile.s32 [sr10], sr00 ; membar.cta ; mov.s32 sr20, 1 ; st.volatile.s32 [sr30], sr20 ; Binary '/tmp/dir03db63.tmp/mp-volatile+membar.ctas.exe' successfully loaded Specification clusters: 2 Specification: [[(438, 9, 'R4'), (439, 9, 'R5')], [(507, 8, 'R10'), (509, 8, 'R12')]] Cluster 0: OK Cluster 1: OK !!SUCCESS!! Test mp-volatile+membar.ctas Allowed Histogram (3 states) 53628 :>1:r0=0; 1:r2=0; 36720 :>1:r0=0; 1:r2=1; 9652 :>1:r0=1; 1:r2=1; No Witnesses Positive: 0, Negative: 100000 Condition exists (1:r0=1 /\ 1:r2=0) is NOT validated Observation mp-volatile+membar.ctas Never 0 100000 Time mp-volatile+membar.ctas 24.83 -- device info -- Name: GeForce GT 540M Major revision number: 2 Minor revision number: 1 Total global memory: 1072889856 Total shared memory per block: 49152 Number of multiprocessors: 2 Machine: DeepThought3 Revision 1371, version 5.01 GPU_PTX experimental backend Command line: ./litmus -mach GTX540m.cfg ASPLOS/mp-volatile+membar.ctas.litmus -a 2 Parameters #ifndef SIZE_OF_TEST #define SIZE_OF_TEST 100000 #endif #ifndef NUMBER_OF_RUN #define NUMBER_OF_RUN 1 #endif /* cc options: -arch=sm_21 */ /* barrier: user */ /* speedcheck: no */ /* gpu_general_bc: true */ /* gpu_mem_stress: true */ /* gpu-rand-threads: true */ /* gpu_cuda: true */ /* gpu_gen_addr: true */ /* gpu_cvt_global_to_gen: true */ /* gpu_cvt_shared_to_gen: true */ /* gpu_max_ctas: 4 */ /* gpu_min_ctas: 4 */ /* gpu_max_threads: 128 */ /* gpu_min_threads: 128 */