Skip to content

Commit f4d1c7a

Browse files
committed
Remove unnecessary data transfers
1 parent d4933bc commit f4d1c7a

8 files changed

+20
-21
lines changed

src/ecwam/cireduce_loki_gpu.F90

+3-1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ SUBROUTINE CIREDUCE_LOKI_GPU (WVPRPT, FF_NOW)
5353

5454
USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
5555
USE YOWDRVTYPE ,ONLY: FREQUENCY, FORCING_FIELDS
56+
USE YOWSTAT, ONLY: LUPDATE_GPU_GLOBALS
5657

5758
! ----------------------------------------------------------------------
5859
IMPLICIT NONE
@@ -93,7 +94,9 @@ SUBROUTINE CIREDUCE_LOKI_GPU (WVPRPT, FF_NOW)
9394

9495
ELSE
9596

97+
IF(LUPDATE_GPU_GLOBALS)THEN
9698
!$loki update_device
99+
ENDIF
97100
CALL GSTATS(1493,0)
98101
! DETERMINE THE WAVE ATTENUATION FACTOR
99102
!$acc parallel loop gang present(FF_NOW, WVPRPT) vector_length(NPROMA_WAM)
@@ -103,7 +106,6 @@ SUBROUTINE CIREDUCE_LOKI_GPU (WVPRPT, FF_NOW)
103106
ENDDO
104107
!$acc end parallel loop
105108
CALL GSTATS(1493,1)
106-
!$loki update_host
107109
ENDIF
108110

109111
IF (LHOOK) CALL DR_HOOK('CIREDUCE',1,ZHOOK_HANDLE)

src/ecwam/ctuwupdt.F90

+1-5
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,6 @@ SUBROUTINE CTUWUPDT (IJS, IJL, NINF, NSUP, &
8787

8888
IF (LHOOK) CALL DR_HOOK('CTUWUPDT',0,ZHOOK_HANDLE)
8989

90-
!$acc update device(sinth,costh)
91-
!$acc update device(COSPH, nang, nfre_red)
9290
! DEFINE JXO, JYO, KCR
9391
IF (LFRSTCTU) THEN
9492

@@ -106,7 +104,7 @@ SUBROUTINE CTUWUPDT (IJS, IJL, NINF, NSUP, &
106104
IF (.NOT. ALLOCATED(JYO)) ALLOCATE(JYO(NANG,2))
107105
IF (.NOT. ALLOCATED(KCR)) ALLOCATE(KCR(NANG,4))
108106

109-
!$acc update device(KLON, KLAT, KCOR, JXO, JYO, KCR, KPM)
107+
!$acc update device(JXO, JYO, KCR, KPM)
110108
!$acc kernels
111109
DO K=1,NANG
112110

@@ -197,8 +195,6 @@ SUBROUTINE CTUWUPDT (IJS, IJL, NINF, NSUP, &
197195
NPROMA=(IJL-IJS+1)/MTHREADS + 1
198196

199197
#ifdef _OPENACC
200-
!$acc update device(WLAT,WCOR)
201-
!$acc update device(NFRE_RED,ZPI,FR,DELTH,NANG)
202198
!$acc data present(KLAT,WLAT,KCOR,WCOR,WLATN,WLONN,WCORN)
203199
#else
204200
!$OMP PARALLEL DO SCHEDULE(DYNAMIC,1) PRIVATE(JKGLO, KIJS, KIJL)

src/ecwam/initdpthflds.F90

+4
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ SUBROUTINE INITDPTHFLDS(WVENVI, WVPRPT, WVPRPT_LAND)
8787

8888
WVPRPT_LAND%CIWA(:) = 1.0_JWRB
8989

90+
#ifdef WAM_GPU
91+
CALL WVPRPT_LAND%SYNC_DEVICE_RDONLY()
92+
#endif
93+
9094
IF (LHOOK) CALL DR_HOOK('INITDPTHFLDS',1,ZHOOK_HANDLE)
9195

9296
END SUBROUTINE INITDPTHFLDS

src/ecwam/mpdecomp.F90

+2
Original file line numberDiff line numberDiff line change
@@ -1935,6 +1935,8 @@ SUBROUTINE MPDECOMP(NPR, MAXLEN, LLIRANK, LLWVENVI)
19351935
WRITE(IU06,*) ''
19361936
CALL FLUSH(IU06)
19371937

1938+
!$acc update device(KLON, KLAT, KCOR, WLAT, WCOR)
1939+
19381940
IF (LHOOK) CALL DR_HOOK('MPDECOMP',1,ZHOOK_HANDLE)
19391941

19401942
END SUBROUTINE MPDECOMP

src/ecwam/proenvhalo.F90

+1-5
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,8 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
8989
!$OMP END PARALLEL DO
9090
#endif /*_OPENACC*/
9191

92-
!$acc data copyin(WVPRPT_LAND) &
93-
!$acc copyin(WVPRPT_LAND%WAVNUM,WVPRPT_LAND%CGROUP,WVPRPT_LAND%OMOSNH2KD)
94-
9592
CALL MPEXCHNG(BUFFER_EXT, 3*NFRE_RED+5, 1, 1)
96-
!$acc kernels
93+
!$acc kernels present(WVPRPT_LAND)
9794
BUFFER_EXT(NSUP+1,1:NFRE_RED) = WVPRPT_LAND%WAVNUM(1:NFRE_RED)
9895
BUFFER_EXT(NSUP+1,NFRE_RED+1:2*NFRE_RED) = WVPRPT_LAND%CGROUP(1:NFRE_RED)
9996
BUFFER_EXT(NSUP+1,2*NFRE_RED+1:3*NFRE_RED) = WVPRPT_LAND%OMOSNH2KD(1:NFRE_RED)
@@ -105,7 +102,6 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
105102
!$acc end kernels
106103

107104
!$acc end data
108-
!$acc end data
109105

110106
IF (LHOOK) CALL DR_HOOK('PROENVHALO',1,ZHOOK_HANDLE)
111107

src/ecwam/readmdlconf.F90

+1
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ SUBROUTINE READMDLCONF (IU07)
142142
IJS = 1
143143
IJL = NIBLO
144144

145+
!$acc update device(COSPH)
145146

146147
IF (LHOOK) CALL DR_HOOK('READMDLCONF',1,ZHOOK_HANDLE)
147148

src/ecwam/wamintgr_loki_gpu.F90

+8-9
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
4040
USE YOWPARAM , ONLY : NANG, NFRE
4141
USE YOWPCONS , ONLY : EPSMIN
4242
USE YOWSTAT , ONLY : CDTPRO, IDELPRO, IDELT, IDELWI, LLSOURCE, TIME_PROPAG, TIME_PHYS, &
43-
& TIME_OFFLOAD
43+
& TIME_OFFLOAD, LUPDATE_GPU_GLOBALS
4444
USE YOWWIND , ONLY : CDAWIFL, CDATEWO, CDATEFL
4545

4646
USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
@@ -92,6 +92,11 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
9292
! ----------------
9393

9494
TIME0=-WAM_USER_CLOCK()
95+
96+
IF(LUPDATE_GPU_GLOBALS)THEN
97+
!$loki update_device
98+
ENDIF
99+
95100
CALL VARS_4D%SYNC_DEVICE_RDWR()
96101
CALL BLK2GLO%SYNC_DEVICE_RDONLY()
97102
CALL FF_NOW%SYNC_DEVICE_RDWR(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
@@ -128,13 +133,6 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
128133
& WVPRPT, FF_NOW, FF_NEXT)
129134

130135

131-
TIME0=-WAM_USER_CLOCK()
132-
133-
!$loki update_device
134-
135-
136-
TIME_OFFLOAD = TIME_OFFLOAD + (TIME0+WAM_USER_CLOCK())*1.E-06
137-
138136
! IT IS TIME TO INTEGRATE THE SOURCE TERMS
139137
! ----------------------------------------
140138
IF (CDATE >= CDTIMPNEXT) THEN
@@ -211,6 +209,8 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
211209

212210
ENDIF
213211

212+
LUPDATE_GPU_GLOBALS = .FALSE.
213+
214214
TIME0=-WAM_USER_CLOCK()
215215
CALL WVPRPT%SYNC_HOST_RDWR()
216216
CALL WVENVI%SYNC_HOST_RDWR()
@@ -222,7 +222,6 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
222222
CALL MIJ%SYNC_HOST_RDWR()
223223
CALL BLK2GLO%SYNC_HOST_RDWR()
224224

225-
!$loki update_host
226225
TIME_OFFLOAD = TIME_OFFLOAD + (TIME0+WAM_USER_CLOCK())*1.E-06
227226

228227
IF (LHOOK) CALL DR_HOOK('WAMINTGR',1,ZHOOK_HANDLE)

src/ecwam/yowparam.F90

-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,5 @@ MODULE YOWPARAM
6464
! DONE IN LATITUNAL BANDS
6565
! (like it used to be done).
6666
! ----------------------------------------------------------------------
67-
!$acc declare create( nang )
6867
!$acc declare create( nfre_red )
6968
END MODULE YOWPARAM

0 commit comments

Comments
 (0)