0

I was trying to run this code but while compiling in intel devcloud using these commands:

icpx -qopenmp -fopenmp-targets=spir64 openmp_target_offload_clause_ordering.cpp
export OMP_TARGET_OFFLOAD=MANDATORY

it is showing runtime error.

#include <stdio.h>
int main() {
  double *V = reinterpret_cast<double*>(0xdeadbeef);
  printf("pointer=%p\n", V);
  #pragma omp target parallel for simd is_device_ptr(V) if(true)
  for(int i = 0; i < 1; ++i) {
    printf("pointer=%p\n", V);
  }
  #pragma omp target parallel for simd if(true) is_device_ptr(V)
  for(int i = 0; i < 1; ++i) {
    printf("pointer=%p\n", V);
  }
  return 100;
}
Pksingh
  • 53
  • 4

1 Answers1

1

The device pointer you are entering is invalid. Replace (0xdeadbeef) with (omp_target_alloc(size, 0)) in the first line of your main function as follows:

double ptr = reinterpret_cast<double>(omp_target_alloc(size, 0));

Hope this helps!