Libomptarget message: explicit extension not allowed

Hi,

What does this message really mean?

Libomptarget message: explicit extension not allowed: host address
specified is 0x0000000089ee2ed0 (800 bytes), but device allocation
maps to host at 0x0000000089ee30f0 (800 bytes)

I do insert pragmas like below in the real code:

nest::RingBuffer::RingBuffer()
  : buffer_( kernel().connection_manager.get_min_delay() +
kernel().connection_manager.get_max_delay(), 0.0 )
{
  buffer_1 = new double[buffer_.size()];
  for (int i=0;i<buffer_.size();i++) {
          buffer_1[i] = 0;
  }
#pragma omp target enter data map(to: this[0:1])
#pragma omp target enter data map(to: buffer_1[0:100])
}

Hi Itaru,

I read the message as:

When you try to map buffer_1[0:100] (0x0000000089ee2ed0 -
0x0000000089ee31f0), there is still a mapping present with base address
0x0000000089ee30f0, size 800, which overlaps with the new mapping.

So, either you missed to release a previous mapping:

#pragma omp target exit data map(release: buffer_1[0:100])

Or you have a different size of the allocation, then you use in the
mapping: buffer_.size() != 100 ?

Best,
Joachim