codeplaysoftware / portBLAS

An implementation of BLAS using the SYCL open standard.
Apache License 2.0
247 stars 48 forks source link

Build failure with latest Open DPC++ (LLVM) compiler #526

Closed sknepper closed 1 month ago

sknepper commented 1 month ago

Testing with the recent fix to the oneMKL interfaces repository (https://github.com/oneapi-src/oneMKL/pull/534), I'm seeing build failures in portBLAS with the LLVM compiler. There are errors like:

In file included from /.../build/deps/portblas-src/src/portblas.hpp:33:
/.../build/deps/portblas-src/src/interface/blas1_interface.hpp:358:24: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
   358 |     sb_handle.template release_temp_mem({*ret.rbegin()}, gpu_res);
       |                        ^

/.../build/deps/portblas-src/src/interface/blas3/backend/default.hpp:58:20: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
    58 |           template _select_gemm(sb_handle, _M, _N, _K, _alpha, _a, _lda,
       |                    ^

And similar in other files. This seems to happen for all hardware (x86, Intel GPU, NVIDIA GPU, and AMD GPU), but only with the LLVM compiler. The LLVM compiler from around July 11 was tested. Thanks!

Rbiessy commented 1 month ago

Thank you for the issue @sknepper. Yes this is due to a recent breaking change in the compiler. We'll look into this.

Rbiessy commented 1 month ago

The PR was merged.