[Openmp-dev] Libomptarget fatal error 1: '#pragma omp requires unified_shared_memory' not used consistently!

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Sat Feb 27 17:17:55 PST 2021


The below C++ code builds, but the executable fails at runtime.
(It is taken from the C code under the libomptarget subdir's test directory)

#include <omp.h>

#pragma omp requires unified_shared_memory
#define N 1024
extern "C" void __tgt_register_requires(int64_t);

int main() {

  int a[N] = {0};
  int b[N] = {0};
  int *device_data;
  __tgt_register_requires(1);
#pragma omp target map(tofrom : device_data)
  {
    device_data = &a[0];
    for (int i = 0; i < 1024; i++) {
      a[i] += 1;
    }
  }
}


More information about the Openmp-dev mailing list