[Openmp-dev] Libomptarget fatal error 1: failure of target construct while offloading is mandatory

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Fri Sep 27 18:59:30 PDT 2019


Do you mean, depending the type it might be offloaded correctly? Is this
situation improved once 5.0 API is supported in trunk?

On Sat, Sep 28, 2019 at 10:22 Alexey Bataev <a.bataev at hotmail.com> wrote:

> Non trivial types are not guaranteed to be offloaded correctly.
>
> Best regards,
> Alexey Bataev
>
> > 27 сент. 2019 г., в 21:17, Itaru Kitayama via Openmp-dev <
> openmp-dev at lists.llvm.org> написал(а):
> >
> > 
> > Hi,
> > This simple C++ program:
> >
> > #include <iostream>
> >
> > class Abstract {
> > public:
> >         virtual int f() = 0;
> > };
> > class Derived : public Abstract {
> >         public:
> >         int f() { return 1; };
> > };
> >
> > int main() {
> >         Abstract *p[10];
> >         for (int i=0;i<10;i++) {
> >             p[i] = new Derived;
> >         }
> >         int sum=0;
> > #pragma omp target parallel for map(p[:10]) reduction(+: sum)
> >         for (int i=0;i<10;i++) {
> >                 sum += p[i]->f();
> >         }
> >         std::cout << "sum " << sum << std::endl;
> > }
> >
> > can be built with the offloading flags of Clang and runs fine on host,
> but on
> > the device it crashes at runtime leaving the error message:
> >
> > ==60659== NVPROF is profiling process 60659, command: ./a.out
> > Libomptarget fatal error 1: failure of target construct while offloading
> is mandatory
> > ==60659== Profiling application: ./a.out
> > ==60659== Warning: 5 records have invalid timestamps due to insufficient
> device buffer space. You can configure the buffer space using the option
> --device-buffer-size.
> > ==60659== Warning: 4 records have invalid timestamps due to insufficient
> semaphore pool size. You can configure the pool size using the option
> --profiling-semaphore-pool-size.
> > ==60659== Profiling result:
> > No kernels were profiled.
> >
> > Does this just indicate the limitation of the current trunk Clang
> implementation?
> >
> > _______________________________________________
> > Openmp-dev mailing list
> > Openmp-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20190928/1c1b8105/attachment-0001.html>


More information about the Openmp-dev mailing list