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

Alexey Bataev via Openmp-dev openmp-dev at lists.llvm.org
Fri Sep 27 19:14:01 PDT 2019


1. If the is trivial, it is guaranteed to be offloaded correctly.
2. No, 5.0 does not add anything like this.

Best regards,
Alexey Bataev

27 сент. 2019 г., в 21:59, Itaru Kitayama <itaru.kitayama at gmail.com> написал(а):


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<mailto: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<mailto: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<mailto: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/ef2b621e/attachment.html>


More information about the Openmp-dev mailing list