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?