alpaka-group / llama

A Low-Level Abstraction of Memory Access
https://llama-doc.rtfd.io/
Mozilla Public License 2.0
80 stars 10 forks source link

Add clang as CUDA compiler to CI #652

Closed bernhardmgruber closed 1 year ago

bernhardmgruber commented 1 year ago
codecov[bot] commented 1 year ago

Codecov Report

Merging #652 (c2e2d8e) into develop (2eb5939) will not change coverage. The diff coverage is n/a.

:exclamation: Current head c2e2d8e differs from pull request most recent head b497399. Consider uploading reports for the commit b497399 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #652 +/- ## ======================================== Coverage 98.78% 98.78% ======================================== Files 74 74 Lines 7160 7160 ======================================== Hits 7073 7073 Misses 87 87 ```
bernhardmgruber commented 1 year ago

This is currently stuck because of an incompatibility between the CUDA headers and gcc-12's libstdc++, which clang picks up by default on the CI runners:

In file included from /home/bgruber/dev/llama/examples/cuda/nbody/nbody.cu:5:
In file included from /usr/include/fmt/format.h:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/memory:77:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/shared_ptr.h:53:
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/shared_ptr_base.h:196:22: error: use of undeclared identifier 'noinline'; did you mean 'inline'?
      __attribute__((__noinline__))
                     ^
/usr/local/cuda/include/crt/host_defines.h:83:24: note: expanded from macro '__noinline__'
        __attribute__((noinline))
                       ^
In file included from /home/bgruber/dev/llama/examples/cuda/nbody/nbody.cu:5:
In file included from /usr/include/fmt/format.h:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/memory:77:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/shared_ptr.h:53:
bernhardmgruber commented 1 year ago

I could fix the issue by using libc++ instead of libstdc++.

bernhardmgruber commented 1 year ago

I could fix the issue by using libc++ instead of libstdc++.

Aaand that conflicts with vcpkg building dependencies with libstdc++. Back to square one.