XFAIL OpenMP/nvptx execution-time hangs for simple nested OpenMP 'target'/'parallel'/'task' constructs [PR99555]
... still awaiting proper resolution, of course. libgomp/ PR target/99555 * testsuite/lib/libgomp.exp (check_effective_target_offload_device_nvptx): New. * testsuite/libgomp.c/pr99555-1.c <nvptx offload device>: Until resolved, make sure that we exit quickly, with error status, XFAILed. * testsuite/libgomp.c-c++-common/task-detach-6.c: Likewise. * testsuite/libgomp.fortran/task-detach-6.f90: Likewise.
This commit is contained in:
parent
39d23b7960
commit
4dd9e1c541
|
@ -401,6 +401,18 @@ proc check_effective_target_offload_device_shared_as { } {
|
||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Return 1 if using nvptx offload device.
|
||||||
|
proc check_effective_target_offload_device_nvptx { } {
|
||||||
|
return [check_runtime_nocache offload_device_nvptx {
|
||||||
|
#include <omp.h>
|
||||||
|
#include "testsuite/libgomp.c-c++-common/on_device_arch.h"
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
return !on_device_arch_nvptx ();
|
||||||
|
}
|
||||||
|
} ]
|
||||||
|
}
|
||||||
|
|
||||||
# Return 1 if at least one Nvidia GPU is accessible.
|
# Return 1 if at least one Nvidia GPU is accessible.
|
||||||
|
|
||||||
proc check_effective_target_openacc_nvidia_accel_present { } {
|
proc check_effective_target_openacc_nvidia_accel_present { } {
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include <omp.h>
|
#include <omp.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <unistd.h> // For 'alarm'.
|
||||||
|
|
||||||
#include "on_device_arch.h"
|
#include "on_device_arch.h"
|
||||||
|
|
||||||
/* Test tasks with detach clause on an offload device. Each device
|
/* Test tasks with detach clause on an offload device. Each device
|
||||||
|
@ -12,7 +14,8 @@ int main (void)
|
||||||
{
|
{
|
||||||
//TODO See '../libgomp.c/pr99555-1.c'.
|
//TODO See '../libgomp.c/pr99555-1.c'.
|
||||||
if (on_device_arch_nvptx ())
|
if (on_device_arch_nvptx ())
|
||||||
__builtin_abort (); //TODO Until resolved, skip, with error status.
|
alarm (4); /*TODO Until resolved, make sure that we exit quickly, with error status.
|
||||||
|
{ dg-xfail-run-if "PR99555" { offload_device_nvptx } } */
|
||||||
|
|
||||||
int x = 0, y = 0, z = 0;
|
int x = 0, y = 0, z = 0;
|
||||||
int thread_count;
|
int thread_count;
|
||||||
|
|
|
@ -2,12 +2,15 @@
|
||||||
|
|
||||||
// { dg-additional-options "-O0" }
|
// { dg-additional-options "-O0" }
|
||||||
|
|
||||||
|
#include <unistd.h> // For 'alarm'.
|
||||||
|
|
||||||
#include "../libgomp.c-c++-common/on_device_arch.h"
|
#include "../libgomp.c-c++-common/on_device_arch.h"
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
{
|
{
|
||||||
if (on_device_arch_nvptx ())
|
if (on_device_arch_nvptx ())
|
||||||
__builtin_abort (); //TODO Until resolved, skip, with error status.
|
alarm (4); /*TODO Until resolved, make sure that we exit quickly, with error status.
|
||||||
|
{ dg-xfail-run-if "PR99555" { offload_device_nvptx } } */
|
||||||
|
|
||||||
#pragma omp target
|
#pragma omp target
|
||||||
#pragma omp parallel // num_threads(1)
|
#pragma omp parallel // num_threads(1)
|
||||||
|
|
|
@ -21,7 +21,8 @@ program task_detach_6
|
||||||
|
|
||||||
!TODO See '../libgomp.c/pr99555-1.c'.
|
!TODO See '../libgomp.c/pr99555-1.c'.
|
||||||
if (on_device_arch_nvptx () /= 0) then
|
if (on_device_arch_nvptx () /= 0) then
|
||||||
error stop !TODO Until resolved, skip, with error status.
|
call alarm (4, 0); !TODO Until resolved, make sure that we exit quickly, with error status.
|
||||||
|
! { dg-xfail-run-if "PR99555" { offload_device_nvptx } }
|
||||||
end if
|
end if
|
||||||
|
|
||||||
!$omp target map (tofrom: x, y, z) map (from: thread_count)
|
!$omp target map (tofrom: x, y, z) map (from: thread_count)
|
||||||
|
|
Loading…
Reference in New Issue