-/* Only nvptx plugin does the required error checking.
- { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
return 0;
}
-/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "invalid device address" } */
+/* { dg-output "CheCKpOInT(\n|\r\n|\r)+" } */
+/* { dg-output "libgomp: invalid device address(\n|\r\n|\r)+" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "libgomp: GCN fatal error: Could not free device memory(\n|\r\n|\r)+" { target openacc_radeon_accel_selected } }
+ { dg-output "Runtime message: HSA_STATUS_ERROR_INVALID_ALLOCATION: The requested allocation is not valid\.(\n|\r\n|\r)+" { target openacc_radeon_accel_selected } } */
+/* { dg-output "libgomp: error in freeing device memory in acc_free(\n|\r\n|\r)+$" } */
/* { dg-shouldfail "" } */
/* Check acc_is_present and acc_delete. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdlib.h>
#include <openacc.h>
/* Check acc_is_present. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdlib.h>
#include <openacc.h>
/* Check acc_is_present and acc_copyout. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdlib.h>
#include <openacc.h>
-/* Exercise acc_copyin and acc_copyout on nvidia targets. */
+/* Exercise acc_copyin and acc_copyout. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
-/* Exercise acc_copyin and acc_copyout on nvidia targets. */
+/* Exercise acc_copyin and acc_copyout. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
/* Exercise acc_create, acc_is_present and acc_delete. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdlib.h>
#include <openacc.h>
-/* Exercise an invalid acc_present_or_create on nvidia targets. */
+/* Exercise an invalid acc_present_or_create. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
-/* Exercise acc_update_device on unmapped data on nvidia targets. */
+/* Exercise acc_update_device on unmapped data. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
-/* Exercise acc_update_device with size zero data on nvidia targets. */
+/* Exercise acc_update_device with size zero data. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <stdlib.h>
-/* Exercise acc_update_self with a size zero data mapping on nvidia targets. */
+/* Exercise acc_update_self with a size zero data mapping. */
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <string.h>
acc_shutdown (acc_device_nvidia);
}
- return 0;
+ if (acc_get_num_devices (acc_device_radeon) != 0)
+ {
+ acc_init (acc_device_radeon);
+
+ if (acc_get_device_type () != acc_device_radeon)
+ abort ();
+
+ acc_shutdown (acc_device_radeon);
+
+ acc_init (acc_device_default);
+ acc_set_device_type (acc_device_radeon);
+
+ if (acc_get_device_type () != acc_device_radeon)
+ abort ();
+
+ acc_shutdown (acc_device_radeon);
+ }
+
+ return 0;
}
-/* Exercise acc_map_data with a NULL data mapping on nvidia targets. */
-
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Exercise acc_map_data with a NULL data mapping. */
#include <stdio.h>
#include <stdlib.h>
}
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "\\\[\[^\n\r]*,\\\+256\]->\[\[0-9a-fA-FxX\]+,\\\+256\\\] is a bad map" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "\\\[\[^\n\r]*,\\\+256\]->\[\[0-9a-fA-FxX\]+,\\\+256\\\] is a bad map" { target { ! openacc_host_selected } } } */
/* { dg-output "cannot map data on shared-memory system" { target openacc_host_selected } } */
/* { dg-shouldfail "" } */
-/* Exercise acc_map_data with a NULL data mapping on nvidia targets. */
-
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Exercise acc_map_data with a NULL data mapping. */
#include <stdio.h>
#include <stdlib.h>
}
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "\\\[\[0-9a-fA-FxX\]+,\\\+256\]->\\\[\[^\n\r]*,\\\+256\\\] is a bad map" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "\\\[\[0-9a-fA-FxX\]+,\\\+256\]->\\\[\[^\n\r]*,\\\+256\\\] is a bad map" { target { ! openacc_host_selected } } } */
/* { dg-output "cannot map data on shared-memory system" { target openacc_host_selected } } */
/* { dg-shouldfail "" } */
-/* Exercise acc_map_data with data size of zero on nvidia targets. */
-
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Exercise acc_map_data with data size of zero. */
#include <stdio.h>
#include <stdlib.h>
}
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "\\\[\[0-9a-fA-FxX\]+,\\\+0\\\]->\\\[\[0-9a-fA-FxX\]+,\\\+0\\\] is a bad map" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "\\\[\[0-9a-fA-FxX\]+,\\\+0\\\]->\\\[\[0-9a-fA-FxX\]+,\\\+0\\\] is a bad map" { target { ! openacc_host_selected } } } */
/* { dg-output "cannot map data on shared-memory system" { target openacc_host_selected } } */
/* { dg-shouldfail "" } */
}
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "\[0-9a-fA-FxX\]+ is not a mapped block" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "\[0-9a-fA-FxX\]+ is not a mapped block" { target { ! openacc_host_selected } } } */
/* { dg-output "cannot map data on shared-memory system" { target openacc_host_selected } } */
/* { dg-shouldfail "" } */
}
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
-/* { dg-output "\[^\n\r]* is not a mapped block" { target openacc_nvidia_accel_selected } } */
+/* { dg-output "\[^\n\r]* is not a mapped block" { target { ! openacc_host_selected } } } */
/* { dg-output "cannot map data on shared-memory system" { target openacc_host_selected } } */
/* { dg-shouldfail "" } */
if (acc_get_device_type () == acc_device_default)
abort ();
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
+ if (acc_get_num_devices (acc_device_nvidia))
+ {
+ acc_set_device_type (acc_device_nvidia);
- acc_set_device_type (acc_device_nvidia);
+ if (acc_get_device_type () != acc_device_nvidia)
+ abort ();
- if (acc_get_device_type () != acc_device_nvidia)
- abort ();
+ acc_shutdown (acc_device_nvidia);
- acc_shutdown (acc_device_nvidia);
+ acc_set_device_type (acc_device_nvidia);
- acc_set_device_type (acc_device_nvidia);
+ if (acc_get_device_type () != acc_device_nvidia)
+ abort ();
- if (acc_get_device_type () != acc_device_nvidia)
- abort ();
+ devnum = acc_get_num_devices (acc_device_host);
+ if (devnum != 1)
+ abort ();
- devnum = acc_get_num_devices (acc_device_host);
- if (devnum != 1)
- abort ();
+ acc_shutdown (acc_device_nvidia);
+ }
+
+ if (acc_get_num_devices (acc_device_radeon))
+ {
+ acc_set_device_type (acc_device_radeon);
+
+ if (acc_get_device_type () != acc_device_radeon)
+ abort ();
+
+ acc_shutdown (acc_device_radeon);
+
+ acc_set_device_type (acc_device_radeon);
+
+ if (acc_get_device_type () != acc_device_radeon)
+ abort ();
+
+ devnum = acc_get_num_devices (acc_device_host);
+ if (devnum != 1)
+ abort ();
- acc_shutdown (acc_device_nvidia);
+ acc_shutdown (acc_device_radeon);
+ }
if (acc_get_device_type () == acc_device_default)
abort ();
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* Not all implement this checking.
+ { dg-skip-if "" { openacc_radeon_accel_selected || openacc_host_selected } } */
#include <stdio.h>
#include <string.h>
int
main (int argc, char **argv)
{
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
if (acc_get_current_cuda_device () != 0)
abort ();
acc_shutdown (acc_device_host);
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
if (acc_get_current_cuda_device () != 0)
abort ();
- acc_init (acc_device_nvidia);
+ if (acc_get_num_devices (acc_device_nvidia))
+ {
+ acc_init (acc_device_nvidia);
- if (acc_get_current_cuda_device () == 0)
- abort ();
+ if (acc_get_current_cuda_device () == 0)
+ abort ();
+
+ acc_shutdown (acc_device_nvidia);
+ }
+
+ if (acc_get_num_devices (acc_device_radeon))
+ {
+ acc_init (acc_device_radeon);
+
+ if (acc_get_current_cuda_device () != 0)
+ abort ();
- acc_shutdown (acc_device_nvidia);
+ acc_shutdown (acc_device_radeon);
+ }
if (acc_get_current_cuda_device () != 0)
abort ();
int
main (int argc, char **argv)
{
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
if (acc_get_current_cuda_context () != 0)
abort ();
acc_shutdown (acc_device_host);
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
if (acc_get_current_cuda_context () != 0)
abort ();
- acc_init (acc_device_nvidia);
+ if (acc_get_num_devices (acc_device_nvidia))
+ {
+ acc_init (acc_device_nvidia);
- if (acc_get_current_cuda_context () == 0)
- abort ();
+ if (acc_get_current_cuda_context () == 0)
+ abort ();
+
+ acc_shutdown (acc_device_nvidia);
+ }
+
+ if (acc_get_num_devices (acc_device_radeon))
+ {
+ acc_init (acc_device_radeon);
+
+ if (acc_get_current_cuda_context () != 0)
+ abort ();
- acc_shutdown (acc_device_nvidia);
+ acc_shutdown (acc_device_radeon);
+ }
if (acc_get_current_cuda_context () != 0)
abort ();
-/* { dg-do run } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <pthread.h>
pthread_attr_t attr;
pthread_t *tid;
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
- acc_init (acc_device_nvidia);
+ acc_init (acc_device_default);
x = (unsigned char *) malloc (N);
if (acc_is_present (x, N) != 0)
abort ();
- acc_shutdown (acc_device_nvidia);
-
return 0;
}
-/* { dg-do run } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <stdio.h>
#include <pthread.h>
tid = (int) (long) arg;
- devnum = acc_get_device_num (acc_device_nvidia);
- acc_set_device_num (devnum, acc_device_nvidia);
+ devnum = acc_get_device_num (acc_device_default);
+ acc_set_device_num (devnum, acc_device_default);
+#if ACC_DEVICE_TYPE_nvidia
if (acc_get_current_cuda_context () == NULL)
abort ();
+#else
+ if (acc_get_current_cuda_context () != NULL)
+ abort ();
+#endif
p = (unsigned char *) malloc (N);
pthread_attr_t attr;
pthread_t *tid;
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
- acc_init (acc_device_nvidia);
+ acc_init (acc_device_default);
x = (unsigned char **) malloc (NTHREADS * N);
d_x = (void **) malloc (NTHREADS * N);
abort ();
}
- acc_shutdown (acc_device_nvidia);
-
return 0;
}
-/* { dg-do run } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
#include <pthread.h>
#include <stdio.h>
tid = (int) (long) arg;
- devnum = acc_get_device_num (acc_device_nvidia);
- acc_set_device_num (devnum, acc_device_nvidia);
+ devnum = acc_get_device_num (acc_device_default);
+ acc_set_device_num (devnum, acc_device_default);
+#if ACC_DEVICE_TYPE_nvidia
if (acc_get_current_cuda_context () == NULL)
abort ();
+#else
+ if (acc_get_current_cuda_context () != NULL)
+ abort ();
+#endif
acc_copyout (x[tid], N);
pthread_t *tid;
unsigned char *p;
- if (acc_get_num_devices (acc_device_nvidia) == 0)
- return 0;
-
- acc_init (acc_device_nvidia);
+ acc_init (acc_device_default);
x = (unsigned char **) malloc (NTHREADS * N);
d_x = (void **) malloc (NTHREADS * N);
abort ();
}
- acc_shutdown (acc_device_nvidia);
-
return 0;
}
integer, parameter :: c_size = sizeof (c)
integer, parameter :: r_size = sizeof (r)
- if (acc_get_num_devices (acc_device_nvidia) .eq. 0) call exit
-
- call acc_init (acc_device_nvidia)
+ call acc_init (acc_device_default)
call set3d (.FALSE., a_3d_i, a_3d_c, a_3d_r)
end do
end do
- call acc_shutdown (acc_device_nvidia)
-
contains
subroutine set3d (clear, a_i, a_c, a_r)
! Exercise the data movement runtime library functions on non-shared memory
! targets.
-! { dg-do run { target openacc_nvidia_accel_selected } }
+! { dg-do run }
+! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
program main
use openacc
integer n
- if (acc_get_num_devices (acc_device_nvidia) .eq. 0) call exit
+ if (acc_get_num_devices (acc_device_nvidia) .ne. 0) then
- call acc_init (acc_device_nvidia)
+ call acc_init (acc_device_nvidia)
- n = 0
+ n = 0
- call acc_set_device_num (n, acc_device_nvidia)
+ call acc_set_device_num (n, acc_device_nvidia)
- if (acc_get_device_num (acc_device_nvidia) .ne. 0) STOP 1
+ if (acc_get_device_num (acc_device_nvidia) .ne. 0) stop 11
- if (acc_get_num_devices (acc_device_nvidia) .gt. 1) then
+ if (acc_get_num_devices (acc_device_nvidia) .gt. 1) then
- n = 1
+ n = 1
- call acc_set_device_num (n, acc_device_nvidia)
+ call acc_set_device_num (n, acc_device_nvidia)
- if (acc_get_device_num (acc_device_nvidia) .ne. 1) STOP 2
+ if (acc_get_device_num (acc_device_nvidia) .ne. 1) stop 12
+
+ end if
+
+ call acc_shutdown (acc_device_nvidia)
end if
- call acc_shutdown (acc_device_nvidia)
+ if (acc_get_num_devices (acc_device_radeon) .ne. 0) then
+
+ call acc_init (acc_device_radeon)
+
+ n = 0
+
+ call acc_set_device_num (n, acc_device_radeon)
+
+ if (acc_get_device_num (acc_device_radeon) .ne. 0) stop 21
+
+ if (acc_get_num_devices (acc_device_radeon) .gt. 1) then
+
+ n = 1
+
+ call acc_set_device_num (n, acc_device_radeon)
+
+ if (acc_get_device_num (acc_device_radeon) .ne. 1) stop 22
+
+ end if
+
+ call acc_shutdown (acc_device_radeon)
+
+ end if
end program
integer n
- if (acc_get_num_devices (acc_device_nvidia) .eq. 0) call exit
+ if (acc_get_num_devices (acc_device_nvidia) .ne. 0) then
- call acc_init (acc_device_nvidia)
+ call acc_init (acc_device_nvidia)
- n = 0
+ n = 0
- call acc_set_device_num (n, acc_device_nvidia)
+ call acc_set_device_num (n, acc_device_nvidia)
- if (acc_get_device_num (acc_device_nvidia) .ne. 0) STOP 1
+ if (acc_get_device_num (acc_device_nvidia) .ne. 0) STOP 1
- if (acc_get_num_devices (acc_device_nvidia) .gt. 1) then
+ if (acc_get_num_devices (acc_device_nvidia) .gt. 1) then
- n = 1
+ n = 1
- call acc_set_device_num (n, acc_device_nvidia)
+ call acc_set_device_num (n, acc_device_nvidia)
- if (acc_get_device_num (acc_device_nvidia) .ne. 1) STOP 2
+ if (acc_get_device_num (acc_device_nvidia) .ne. 1) STOP 2
+
+ end if
+
+ call acc_shutdown (acc_device_nvidia)
end if
- call acc_shutdown (acc_device_nvidia)
+ if (acc_get_num_devices (acc_device_radeon) .ne. 0) then
+
+ call acc_init (acc_device_radeon)
+
+ n = 0
+
+ call acc_set_device_num (n, acc_device_radeon)
+
+ if (acc_get_device_num (acc_device_radeon) .ne. 0) STOP 1
+
+ if (acc_get_num_devices (acc_device_radeon) .gt. 1) then
+
+ n = 1
+
+ call acc_set_device_num (n, acc_device_radeon)
+
+ if (acc_get_device_num (acc_device_radeon) .ne. 1) STOP 2
+
+ end if
+
+ call acc_shutdown (acc_device_radeon)
+
+ end if
end program
integer, parameter :: c_size = sizeof (c)
integer, parameter :: r_size = sizeof (r)
- if (acc_get_num_devices (acc_device_nvidia) .eq. 0) call exit
-
- call acc_init (acc_device_nvidia)
+ call acc_init (acc_device_default)
call set3d (.FALSE., a_3d_i, a_3d_c, a_3d_r)
end do
end do
- call acc_shutdown (acc_device_nvidia)
-
contains
subroutine set3d (clear, a_i, a_c, a_r)