https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108098
Bug ID: 108098
Summary: OpenMP/nvptx reverse offload execution test FAILs
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Keywords: openmp
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: burnus at gcc dot gnu.org, jakub at gcc dot gnu.org,
vries at gcc dot gnu.org
Target Milestone: ---
With commit r13-4593-gea4b23d9c82d9be3b982c3519fe5e8e9d833a6a8 "libgomp: Handle
OpenMP's reverse offloads", I'm seeing PASSes for a number of testing
configurations (see below), but regressions/FAILs on others:
PASS: libgomp.c/../libgomp.c-c++-common/reverse-offload-1.c (test for
excess errors)
[-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/reverse-offload-1.c
execution test
libgomp: cuCtxSynchronize error: unspecified launch failure (perhaps abort
was called)
Or:
libgomp: cuCtxSynchronize error: an illegal instruction was encountered
Same for C++.
PASS: libgomp.c/../libgomp.c-c++-common/reverse-offload-2.c (test for
excess errors)
[-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/reverse-offload-2.c
execution test
libgomp: cuModuleGetFunction error: named symbol not found
Same for C++.
PASS: libgomp.fortran/reverse-offload-1.f90 -O0 (test for excess errors)
[-PASS:-]{+FAIL:+} libgomp.fortran/reverse-offload-1.f90 -O0 execution
test
STOP 2
libgomp: cuCtxSynchronize error: unspecified launch failure (perhaps abort
was called)
Or:
libgomp: cuCtxSynchronize error: an illegal instruction was encountered
Same for other torture testing flags.
..., and for the new test cases:
+PASS: libgomp.fortran/reverse-offload-2.f90 -O (test for excess errors)
+FAIL: libgomp.fortran/reverse-offload-2.f90 -O execution test
+PASS: libgomp.fortran/reverse-offload-3.f90 -O (test for excess errors)
+FAIL: libgomp.fortran/reverse-offload-3.f90 -O execution test
+PASS: libgomp.fortran/reverse-offload-4.f90 -O (test for excess errors)
+FAIL: libgomp.fortran/reverse-offload-4.f90 -O execution test
+PASS: libgomp.fortran/reverse-offload-5.f90 -O (test for excess errors)
+XFAIL: libgomp.fortran/reverse-offload-5.f90 -O execution test
+PASS: libgomp.fortran/reverse-offload-5a.f90 -O (test for excess
errors)
+FAIL: libgomp.fortran/reverse-offload-5a.f90 -O execution test
These fail with different host-side or device-side STOP codes.
I haven't analyzed further.
That's with standard option on a system with:
$ nvidia-smi
[...]
| NVIDIA-SMI 440.33.01 Driver Version: 440.33.01 CUDA Version: 10.2
[...]
| 0 Tesla K80 [...]
[...]
| 1 Tesla K80 [...]
... as well as (separately tested):
| 2 GeForce GTX 1080 [...]
..., and with '-foffload-options=nvptx-none=-mptx=3.1' on a system with:
$ nvidia-smi
[...]
| NVIDIA-SMI 361.93.02 Driver Version: 361.93.02
[...]
| 0 Tesla K20c [...]
These test cases PASS on a system with:
$ nvidia-smi
[...]
| NVIDIA-SMI 455.38 Driver Version: 455.38 CUDA Version: 11.1
[...]
| 0 Tesla K20c [...]
... as well as (separately tested):
| 1 Tesla K40c [...]
..., and:
$ nvidia-smi
[...]
| NVIDIA-SMI 455.23.05 Driver Version: 455.23.05 CUDA Version: 11.1
[...]
| 0 TITAN V [...]
Is maybe CUDA 11 (or rather, corresponding Nvidia Driver version) a hard
requirement, and if yes, how to deal with that?