A few more checks for memory allocation failures

This commit is contained in:
Pietro Bonfa 2020-05-12 15:19:15 +02:00
parent 7b13880f46
commit 36915a4a6d
4 changed files with 15 additions and 2 deletions

View File

@ -684,6 +684,8 @@ SUBROUTINE reorder_evals_cevecs(nbase, nvec, nvecx, conv, e_d, ew_d, v_d)
CALL buffer%lock_buffer(conv_idx_d, nvec, info)
CALL buffer%lock_buffer(vtmp_d, (/nvecx, nvecx/), info)
IF( info /= 0 ) &
CALL errore( ' reorder_evals_cevecs ',' cannot allocate vtmp_d ', ABS(info) )
conv_idx_d(1:nvec) = conv_idx(1:nvec)

View File

@ -631,6 +631,8 @@ SUBROUTINE reorder_evals_revecs(nbase, nvec, nvecx, conv, e_d, ew_d, v_d)
CALL buffer%lock_buffer(conv_idx_d, nvec, info)
CALL buffer%lock_buffer(vtmp_d, (/nvecx, nvecx/), info)
IF( info /= 0 ) &
CALL errore( ' reorder_evals_revecs ',' cannot allocate vtmp_d ', ABS(info) )
conv_idx_d(1:nvec) = conv_idx(1:nvec)

View File

@ -95,8 +95,11 @@ SUBROUTINE addusdens_g_gpu(rho)
CALL start_clock_gpu ('addusdens')
!
CALL dev_buf%lock_buffer(aux_d, (/ ngm, nspin_mag /), ierr ) !ALLOCATE (aux_d (ngm, nspin_mag) )
CALL pin_buf%lock_buffer(aux_h, (/ ngm, nspin_mag /), ierr ) !ALLOCATE (aux_h (ngm, nspin_mag) )
CALL dev_buf%lock_buffer(aux_d, (/ ngm, nspin_mag /), ierr ) !ALLOCATE (aux_d (ngm, nspin_mag) )
IF( ierr /= 0 ) &
CALL errore( ' addusdens_gpu ',' cannot allocate aux_d ', ABS(ierr) )
!
CALL dev_memset(aux_d, (0.d0, 0.d0), [ 1, ngm ], 1, [ 1, nspin_mag ], 1)
!
@ -116,9 +119,11 @@ SUBROUTINE addusdens_g_gpu(rho)
!
!ALLOCATE (qmod_d(ngm_l), qgm_d(ngm_l) )
!ALLOCATE (ylmk0_d(ngm_l, lmaxq * lmaxq) )
CALL dev_buf%lock_buffer(ylmk0_d, (/ ngm_l, lmaxq * lmaxq /), ierr )
CALL dev_buf%lock_buffer(qmod_d, ngm_l, ierr )
CALL dev_buf%lock_buffer(qgm_d, ngm_l, ierr )
CALL dev_buf%lock_buffer(ylmk0_d, (/ ngm_l, lmaxq * lmaxq /), ierr )
IF( ierr /= 0 ) &
CALL errore( ' addusdens_gpu ',' cannot allocate ylmk0_d ', ABS(ierr) )
CALL ylmr2_gpu (lmaxq * lmaxq, ngm_l, g_d(1,ngm_s), gg_d(ngm_s), ylmk0_d)
@ -149,6 +154,8 @@ SUBROUTINE addusdens_g_gpu(rho)
CALL dev_buf%lock_buffer(skk_d, (/ ngm_l,nab /), ierr)
CALL dev_buf%lock_buffer(tbecsum_d, (/ nij,nab,nspin_mag /), ierr )
CALL dev_buf%lock_buffer(aux2_d, (/ ngm_l,nij /), ierr )
IF( ierr /= 0 ) &
CALL errore( ' addusdens_gpu ',' cannot allocate aux2_d ', ABS(ierr) )
!
call start_clock_gpu( 'addusd:skk')
nb = 0

View File

@ -242,6 +242,8 @@ SUBROUTINE drhoc_gpu( ngl, gl_d, omega, tpiba2, mesh, r_d, rab_d, rhoc_d, rhocg_
! lower limit for loop on ngl
!
CALL dev_buf%lock_buffer(aux_d, (/ mesh, ngl /), ierr) ! allocate (aux_d( mesh, ngl))
IF( ierr /= 0 ) &
CALL errore( ' drhoc_gpu ',' cannot allocate aux_d ', ABS(ierr) )
!
! G=0 and G <> 0 term done together (in the end is just an avoided bessel call and multiply by 1.0)
!