device-2.c 503 B

1234567891011121314151617181920212223242526272829
  1. /* { dg-do run } */
  2. /* { dg-require-effective-target offload_device } */
  3. #include <omp.h>
  4. #include <stdlib.h>
  5. #define N 10
  6. int main ()
  7. {
  8. int i;
  9. int offload[N];
  10. int num = omp_get_num_devices();
  11. #pragma omp parallel for
  12. for (i = 0; i < N; i++)
  13. #pragma omp target device(i) map(from: offload[i:1])
  14. offload[i] = omp_is_initial_device ();
  15. for (i = 0; i < num; i++)
  16. if (offload[i])
  17. abort ();
  18. for (i = num; i < N; i++)
  19. if (!offload[i])
  20. abort ();
  21. return 0;
  22. }