1 ! Test of reduction on parallel directive
(with async
).
2 ! Variant of
"../libgomp.oacc-c-c++-common/par-reduction-2.c".
3 ! Variant using the
"openacc" module
.
11 INTEGER RES
, RES1
, RES2
16 !$ACC PARALLEL NUM_GANGS
(256) NUM_WORKERS
(32) VECTOR_LENGTH
(32)
17 !$ACC
& REDUCTION
(+:RES1
) COPY
(RES1
, RES2
) ASYNC
(1)
24 IF (ACC_GET_DEVICE_TYPE
() .EQ
. ACC_DEVICE_HOST
) THEN
30 CALL ACC_ASYNC_WAIT
(1)
32 IF (RES
.NE
. RES1
) STOP 1
33 IF (RES
.NE
. RES2
) STOP 2
38 !$ACC PARALLEL NUM_GANGS
(8) NUM_WORKERS
(32) VECTOR_LENGTH
(32)
39 !$ACC
& REDUCTION
(*:RES1
) COPY
(RES1
, RES2
) ASYNC
(1)
46 IF (ACC_GET_DEVICE_TYPE
() .EQ
. ACC_DEVICE_HOST
) THEN
52 CALL ACC_ASYNC_WAIT_ALL
54 IF (RES
.NE
. RES1
) STOP 3
55 IF (RES
.NE
. RES2
) STOP 4