[libgomp, testsuite, nvptx] Limit recursion in declare_target-{1,2}.f90

When running testcases libgomp.fortran/examples-4/declare_target-{1,2}.f90 on
an RTX A2000 (sm_86) with driver 510.60.02 and with GOMP_NVPTX_JIT=-O0 I run
into:
...
FAIL: libgomp.fortran/examples-4/declare_target-1.f90 -O0 \
  -DGOMP_NVPTX_JIT=-O0 execution test
FAIL: libgomp.fortran/examples-4/declare_target-2.f90 -O0 \
  -DGOMP_NVPTX_JIT=-O0 execution test
...

Fix this by further limiting recursion depth in the test-cases for nvptx.

Furthermore, make the recursion depth limiting nvptx-specific.

Tested on x86_64 with nvptx accelerator.

libgomp/ChangeLog:

2022-04-01  Tom de Vries  <tdevries@suse.de>

	* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Define
	and use REC_DEPTH.
	* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
This commit is contained in:
Tom de Vries 2022-04-01 13:08:54 +02:00
parent 065e25f633
commit bfa9f660d2
2 changed files with 27 additions and 11 deletions

View File

@ -1,4 +1,16 @@
! { dg-do run }
! { dg-additional-options "-cpp" }
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 20, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
! { dg-additional-options "-DREC_DEPTH=20" { target { offload_target_nvptx } } } */
#ifndef REC_DEPTH
#define REC_DEPTH 25
#endif
module e_53_1_mod
integer :: THRESHOLD = 20
@ -27,9 +39,5 @@ end module
program e_53_1
use e_53_1_mod, only : fib, fib_wrapper
if (fib (15) /= fib_wrapper (15)) stop 1
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
if (fib (22) /= fib_wrapper (22)) stop 2
if (fib (REC_DEPTH) /= fib_wrapper (REC_DEPTH)) stop 2
end program

View File

@ -1,16 +1,24 @@
! { dg-do run }
! { dg-additional-options "-cpp" }
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 18, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
! { dg-additional-options "-DREC_DEPTH=18" { target { offload_target_nvptx } } } */
#ifndef REC_DEPTH
#define REC_DEPTH 25
#endif
program e_53_2
!$omp declare target (fib)
integer :: x, fib
!$omp target map(from: x)
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
x = fib (22)
x = fib (REC_DEPTH)
!$omp end target
if (x /= fib (22)) stop 1
if (x /= fib (REC_DEPTH)) stop 1
end program
integer recursive function fib (n) result (f)