diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 99a106cce..98c1b6614 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -31,6 +31,7 @@ jobs: runs-on: ubuntu-latest # One runner for each domain strategy: + fail-fast: false matrix: include: - config: portBLAS @@ -77,13 +78,16 @@ jobs: # 64 bit int cmake ${SHARED_OPT} -DBUILD_INDEX64=on -B lapack/build64 cmake --build lapack/build64 ${PARALLEL} --target install - - name: Install oneapi + - name: Install compiler if: steps.domain_check.outputs.result == 'true' - uses: rscohn2/setup-oneapi@2ad0cf6b74bc2426bdcee825cf88f9db719dd727 # v0.1.0 - with: - components: | - icx@2024.1.0 - mkl@2024.1.0 + run: | + wget --progress=dot:giga https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ac92f2bb-4818-4e53-a432-f8b34d502f23/intel-dpcpp-cpp-compiler-2025.0.0.740_offline.sh + sudo bash intel-dpcpp-cpp-compiler-2025.0.0.740_offline.sh -s -a -s --action install --eula accept + - name: Install Intel oneMKL + if: steps.domain_check.outputs.result == 'true' + run: | + wget --progress=dot:giga https://registrationcenter-download.intel.com/akdlm/IRC_NAS/79153e0f-74d7-45af-b8c2-258941adf58a/intel-onemkl-2025.0.0.940_offline.sh + sudo bash intel-onemkl-2025.0.0.940_offline.sh -s -a -s --action install --eula accept - name: Configure/Build for a domain if: steps.domain_check.outputs.result == 'true' run: | diff --git a/src/lapack/backends/mkl_common/mkl_lapack_backend.hpp b/src/lapack/backends/mkl_common/mkl_lapack_backend.hpp index d0ba37e7a..992659a67 100644 --- a/src/lapack/backends/mkl_common/mkl_lapack_backend.hpp +++ b/src/lapack/backends/mkl_common/mkl_lapack_backend.hpp @@ -523,33 +523,35 @@ sycl::event getrf(sycl::queue& queue, std::int64_t m, std::int64_t n, std::compl std::int64_t lda, std::int64_t* ipiv, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri(sycl::queue& queue, std::int64_t n, std::complex* a, std::int64_t lda, - std::int64_t* ipiv, std::complex* scratchpad, std::int64_t scratchpad_size, - const std::vector& dependencies = {}); + const std::int64_t* ipiv, std::complex* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri(sycl::queue& queue, std::int64_t n, double* a, std::int64_t lda, - std::int64_t* ipiv, double* scratchpad, std::int64_t scratchpad_size, + const std::int64_t* ipiv, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri(sycl::queue& queue, std::int64_t n, float* a, std::int64_t lda, - std::int64_t* ipiv, float* scratchpad, std::int64_t scratchpad_size, + const std::int64_t* ipiv, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri(sycl::queue& queue, std::int64_t n, std::complex* a, std::int64_t lda, - std::int64_t* ipiv, std::complex* scratchpad, + const std::int64_t* ipiv, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, std::int64_t* ipiv, - std::complex* b, std::int64_t ldb, std::complex* scratchpad, - std::int64_t scratchpad_size, const std::vector& dependencies = {}); + std::int64_t nrhs, const std::complex* a, std::int64_t lda, + const std::int64_t* ipiv, std::complex* b, std::int64_t ldb, + std::complex* scratchpad, std::int64_t scratchpad_size, + const std::vector& dependencies = {}); sycl::event getrs(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, double* a, std::int64_t lda, std::int64_t* ipiv, double* b, - std::int64_t ldb, double* scratchpad, std::int64_t scratchpad_size, + std::int64_t nrhs, const double* a, std::int64_t lda, const std::int64_t* ipiv, + double* b, std::int64_t ldb, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, float* a, std::int64_t lda, std::int64_t* ipiv, float* b, - std::int64_t ldb, float* scratchpad, std::int64_t scratchpad_size, + std::int64_t nrhs, const float* a, std::int64_t lda, const std::int64_t* ipiv, + float* b, std::int64_t ldb, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, std::int64_t* ipiv, - std::complex* b, std::int64_t ldb, std::complex* scratchpad, - std::int64_t scratchpad_size, const std::vector& dependencies = {}); + std::int64_t nrhs, const std::complex* a, std::int64_t lda, + const std::int64_t* ipiv, std::complex* b, std::int64_t ldb, + std::complex* scratchpad, std::int64_t scratchpad_size, + const std::vector& dependencies = {}); sycl::event gesvd(sycl::queue& queue, oneapi::mkl::jobsvd jobu, oneapi::mkl::jobsvd jobvt, std::int64_t m, std::int64_t n, double* a, std::int64_t lda, double* s, double* u, std::int64_t ldu, double* vt, std::int64_t ldvt, double* scratchpad, @@ -603,46 +605,48 @@ sycl::event hetrf(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgbr(sycl::queue& queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, - std::int64_t k, float* a, std::int64_t lda, float* tau, float* scratchpad, + std::int64_t k, float* a, std::int64_t lda, const float* tau, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgbr(sycl::queue& queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, - std::int64_t k, double* a, std::int64_t lda, double* tau, double* scratchpad, - std::int64_t scratchpad_size, const std::vector& dependencies = {}); -sycl::event orgqr(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, double* a, - std::int64_t lda, double* tau, double* scratchpad, std::int64_t scratchpad_size, + std::int64_t k, double* a, std::int64_t lda, const double* tau, + double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); +sycl::event orgqr(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, double* a, + std::int64_t lda, const double* tau, double* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgqr(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, float* a, - std::int64_t lda, float* tau, float* scratchpad, std::int64_t scratchpad_size, - const std::vector& dependencies = {}); + std::int64_t lda, const float* tau, float* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgtr(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, float* a, - std::int64_t lda, float* tau, float* scratchpad, std::int64_t scratchpad_size, - const std::vector& dependencies = {}); + std::int64_t lda, const float* tau, float* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgtr(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, double* a, - std::int64_t lda, double* tau, double* scratchpad, std::int64_t scratchpad_size, - const std::vector& dependencies = {}); -sycl::event ormtr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, - oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, float* a, - std::int64_t lda, float* tau, float* c, std::int64_t ldc, float* scratchpad, + std::int64_t lda, const double* tau, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ormtr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, - oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, double* a, - std::int64_t lda, double* tau, double* c, std::int64_t ldc, double* scratchpad, + oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, const float* a, + std::int64_t lda, const float* tau, float* c, std::int64_t ldc, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); +sycl::event ormtr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, + oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, const double* a, + std::int64_t lda, const double* tau, double* c, std::int64_t ldc, + double* scratchpad, std::int64_t scratchpad_size, + const std::vector& dependencies = {}); sycl::event ormrq(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, float* a, std::int64_t lda, - float* tau, float* c, std::int64_t ldc, float* scratchpad, + std::int64_t m, std::int64_t n, std::int64_t k, const float* a, std::int64_t lda, + const float* tau, float* c, std::int64_t ldc, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ormrq(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, double* a, std::int64_t lda, - double* tau, double* c, std::int64_t ldc, double* scratchpad, + std::int64_t m, std::int64_t n, std::int64_t k, const double* a, std::int64_t lda, + const double* tau, double* c, std::int64_t ldc, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ormqr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, double* a, std::int64_t lda, - double* tau, double* c, std::int64_t ldc, double* scratchpad, + std::int64_t m, std::int64_t n, std::int64_t k, const double* a, std::int64_t lda, + const double* tau, double* c, std::int64_t ldc, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ormqr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, float* a, std::int64_t lda, - float* tau, float* c, std::int64_t ldc, float* scratchpad, + std::int64_t m, std::int64_t n, std::int64_t k, const float* a, std::int64_t lda, + const float* tau, float* c, std::int64_t ldc, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrf(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, float* a, std::int64_t lda, float* scratchpad, std::int64_t scratchpad_size, @@ -669,17 +673,18 @@ sycl::event potri(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex* a, std::int64_t lda, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, - float* a, std::int64_t lda, float* b, std::int64_t ldb, float* scratchpad, + const float* a, std::int64_t lda, float* b, std::int64_t ldb, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, - double* a, std::int64_t lda, double* b, std::int64_t ldb, double* scratchpad, - std::int64_t scratchpad_size, const std::vector& dependencies = {}); + const double* a, std::int64_t lda, double* b, std::int64_t ldb, + double* scratchpad, std::int64_t scratchpad_size, + const std::vector& dependencies = {}); sycl::event potrs(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, - std::complex* a, std::int64_t lda, std::complex* b, + const std::complex* a, std::int64_t lda, std::complex* b, std::int64_t ldb, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, - std::complex* a, std::int64_t lda, std::complex* b, + const std::complex* a, std::int64_t lda, std::complex* b, std::int64_t ldb, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event syevd(sycl::queue& queue, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo, std::int64_t n, @@ -717,75 +722,75 @@ sycl::event sytrf(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event trtrs(sycl::queue& queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, - oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, std::complex* a, - std::int64_t lda, std::complex* b, std::int64_t ldb, - std::complex* scratchpad, std::int64_t scratchpad_size, + oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, + const std::complex* a, std::int64_t lda, std::complex* b, + std::int64_t ldb, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event trtrs(sycl::queue& queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, - oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, double* a, + oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, const double* a, std::int64_t lda, double* b, std::int64_t ldb, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event trtrs(sycl::queue& queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, - oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, float* a, + oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, const float* a, std::int64_t lda, float* b, std::int64_t ldb, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event trtrs(sycl::queue& queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, - std::complex* a, std::int64_t lda, std::complex* b, + const std::complex* a, std::int64_t lda, std::complex* b, std::int64_t ldb, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungbr(sycl::queue& queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, std::int64_t lda, - std::complex* tau, std::complex* scratchpad, + const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungbr(sycl::queue& queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, std::int64_t lda, - std::complex* tau, std::complex* scratchpad, + const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, - std::complex* a, std::int64_t lda, std::complex* tau, + std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, - std::complex* a, std::int64_t lda, std::complex* tau, + std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungtr(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::complex* a, std::int64_t lda, std::complex* tau, + std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungtr(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::complex* a, std::int64_t lda, std::complex* tau, + std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmrq(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, - std::int64_t lda, std::complex* tau, std::complex* c, + std::int64_t m, std::int64_t n, std::int64_t k, const std::complex* a, + std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmrq(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, - std::int64_t lda, std::complex* tau, std::complex* c, + std::int64_t m, std::int64_t n, std::int64_t k, const std::complex* a, + std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmqr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, - std::int64_t lda, std::complex* tau, std::complex* c, + std::int64_t m, std::int64_t n, std::int64_t k, const std::complex* a, + std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmqr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, - std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, - std::int64_t lda, std::complex* tau, std::complex* c, + std::int64_t m, std::int64_t n, std::int64_t k, const std::complex* a, + std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmtr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, - std::complex* a, std::int64_t lda, std::complex* tau, + const std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event unmtr(sycl::queue& queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, - std::complex* a, std::int64_t lda, std::complex* tau, + const std::complex* a, std::int64_t lda, const std::complex* tau, std::complex* c, std::int64_t ldc, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event geqrf_batch(sycl::queue& queue, std::int64_t m, std::int64_t n, float* a, @@ -865,106 +870,110 @@ sycl::event getrf_batch(sycl::queue& queue, std::int64_t* m, std::int64_t* n, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t n, float* a, std::int64_t lda, - std::int64_t stride_a, std::int64_t* ipiv, std::int64_t stride_ipiv, + std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::int64_t batch_size, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t n, double* a, std::int64_t lda, - std::int64_t stride_a, std::int64_t* ipiv, std::int64_t stride_ipiv, + std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::int64_t batch_size, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t n, std::complex* a, - std::int64_t lda, std::int64_t stride_a, std::int64_t* ipiv, + std::int64_t lda, std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t n, std::complex* a, - std::int64_t lda, std::int64_t stride_a, std::int64_t* ipiv, + std::int64_t lda, std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t* n, float** a, std::int64_t* lda, - std::int64_t** ipiv, std::int64_t group_count, std::int64_t* group_sizes, - float* scratchpad, std::int64_t scratchpad_size, + const std::int64_t* const* ipiv, std::int64_t group_count, + std::int64_t* group_sizes, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t* n, double** a, std::int64_t* lda, - std::int64_t** ipiv, std::int64_t group_count, std::int64_t* group_sizes, - double* scratchpad, std::int64_t scratchpad_size, + const std::int64_t* const* ipiv, std::int64_t group_count, + std::int64_t* group_sizes, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t* n, std::complex** a, - std::int64_t* lda, std::int64_t** ipiv, std::int64_t group_count, - std::int64_t* group_sizes, std::complex* scratchpad, - std::int64_t scratchpad_size, + std::int64_t* lda, const std::int64_t* const* ipiv, + std::int64_t group_count, std::int64_t* group_sizes, + std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getri_batch(sycl::queue& queue, std::int64_t* n, std::complex** a, - std::int64_t* lda, std::int64_t** ipiv, std::int64_t group_count, - std::int64_t* group_sizes, std::complex* scratchpad, - std::int64_t scratchpad_size, + std::int64_t* lda, const std::int64_t* const* ipiv, + std::int64_t group_count, std::int64_t* group_sizes, + std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, float* a, std::int64_t lda, std::int64_t stride_a, - std::int64_t* ipiv, std::int64_t stride_ipiv, float* b, std::int64_t ldb, - std::int64_t stride_b, std::int64_t batch_size, float* scratchpad, - std::int64_t scratchpad_size, + std::int64_t nrhs, const float* a, std::int64_t lda, std::int64_t stride_a, + const std::int64_t* ipiv, std::int64_t stride_ipiv, float* b, + std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, + float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, double* a, std::int64_t lda, std::int64_t stride_a, - std::int64_t* ipiv, std::int64_t stride_ipiv, double* b, std::int64_t ldb, - std::int64_t stride_b, std::int64_t batch_size, double* scratchpad, - std::int64_t scratchpad_size, + std::int64_t nrhs, const double* a, std::int64_t lda, std::int64_t stride_a, + const std::int64_t* ipiv, std::int64_t stride_ipiv, double* b, + std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, + double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, - std::int64_t stride_a, std::int64_t* ipiv, std::int64_t stride_ipiv, + std::int64_t nrhs, const std::complex* a, std::int64_t lda, + std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::complex* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose trans, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, - std::int64_t stride_a, std::int64_t* ipiv, std::int64_t stride_ipiv, + std::int64_t nrhs, const std::complex* a, std::int64_t lda, + std::int64_t stride_a, const std::int64_t* ipiv, std::int64_t stride_ipiv, std::complex* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose* trans, std::int64_t* n, - std::int64_t* nrhs, float** a, std::int64_t* lda, std::int64_t** ipiv, - float** b, std::int64_t* ldb, std::int64_t group_count, - std::int64_t* group_sizes, float* scratchpad, std::int64_t scratchpad_size, + std::int64_t* nrhs, const float* const* a, std::int64_t* lda, + const std::int64_t* const* ipiv, float** b, std::int64_t* ldb, + std::int64_t group_count, std::int64_t* group_sizes, float* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose* trans, std::int64_t* n, - std::int64_t* nrhs, double** a, std::int64_t* lda, std::int64_t** ipiv, - double** b, std::int64_t* ldb, std::int64_t group_count, - std::int64_t* group_sizes, double* scratchpad, std::int64_t scratchpad_size, + std::int64_t* nrhs, const double* const* a, std::int64_t* lda, + const std::int64_t* const* ipiv, double** b, std::int64_t* ldb, + std::int64_t group_count, std::int64_t* group_sizes, double* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose* trans, std::int64_t* n, - std::int64_t* nrhs, std::complex** a, std::int64_t* lda, - std::int64_t** ipiv, std::complex** b, std::int64_t* ldb, + std::int64_t* nrhs, const std::complex* const* a, std::int64_t* lda, + const std::int64_t* const* ipiv, std::complex** b, std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event getrs_batch(sycl::queue& queue, oneapi::mkl::transpose* trans, std::int64_t* n, - std::int64_t* nrhs, std::complex** a, std::int64_t* lda, - std::int64_t** ipiv, std::complex** b, std::int64_t* ldb, - std::int64_t group_count, std::int64_t* group_sizes, + std::int64_t* nrhs, const std::complex* const* a, std::int64_t* lda, + const std::int64_t* const* ipiv, std::complex** b, + std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgqr_batch(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, - float* a, std::int64_t lda, std::int64_t stride_a, float* tau, + float* a, std::int64_t lda, std::int64_t stride_a, const float* tau, std::int64_t stride_tau, std::int64_t batch_size, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgqr_batch(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, - double* a, std::int64_t lda, std::int64_t stride_a, double* tau, + double* a, std::int64_t lda, std::int64_t stride_a, const double* tau, std::int64_t stride_tau, std::int64_t batch_size, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgqr_batch(sycl::queue& queue, std::int64_t* m, std::int64_t* n, std::int64_t* k, - float** a, std::int64_t* lda, float** tau, std::int64_t group_count, - std::int64_t* group_sizes, float* scratchpad, std::int64_t scratchpad_size, + float** a, std::int64_t* lda, const float* const* tau, + std::int64_t group_count, std::int64_t* group_sizes, float* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event orgqr_batch(sycl::queue& queue, std::int64_t* m, std::int64_t* n, std::int64_t* k, - double** a, std::int64_t* lda, double** tau, std::int64_t group_count, - std::int64_t* group_sizes, double* scratchpad, std::int64_t scratchpad_size, + double** a, std::int64_t* lda, const double* const* tau, + std::int64_t group_count, std::int64_t* group_sizes, double* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrf_batch(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, float* a, std::int64_t lda, std::int64_t stride_a, std::int64_t batch_size, @@ -1003,68 +1012,72 @@ sycl::event potrf_batch(sycl::queue& queue, oneapi::mkl::uplo* uplo, std::int64_ std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::int64_t nrhs, float* a, std::int64_t lda, std::int64_t stride_a, + std::int64_t nrhs, const float* a, std::int64_t lda, std::int64_t stride_a, float* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::int64_t nrhs, double* a, std::int64_t lda, std::int64_t stride_a, + std::int64_t nrhs, const double* a, std::int64_t lda, std::int64_t stride_a, double* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, + std::int64_t nrhs, const std::complex* a, std::int64_t lda, std::int64_t stride_a, std::complex* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo uplo, std::int64_t n, - std::int64_t nrhs, std::complex* a, std::int64_t lda, + std::int64_t nrhs, const std::complex* a, std::int64_t lda, std::int64_t stride_a, std::complex* b, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo* uplo, std::int64_t* n, - std::int64_t* nrhs, float** a, std::int64_t* lda, float** b, + std::int64_t* nrhs, const float* const* a, std::int64_t* lda, float** b, std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, float* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo* uplo, std::int64_t* n, - std::int64_t* nrhs, double** a, std::int64_t* lda, double** b, + std::int64_t* nrhs, const double* const* a, std::int64_t* lda, double** b, std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, double* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo* uplo, std::int64_t* n, - std::int64_t* nrhs, std::complex** a, std::int64_t* lda, + std::int64_t* nrhs, const std::complex* const* a, std::int64_t* lda, std::complex** b, std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event potrs_batch(sycl::queue& queue, oneapi::mkl::uplo* uplo, std::int64_t* n, - std::int64_t* nrhs, std::complex** a, std::int64_t* lda, + std::int64_t* nrhs, const std::complex* const* a, std::int64_t* lda, std::complex** b, std::int64_t* ldb, std::int64_t group_count, std::int64_t* group_sizes, std::complex* scratchpad, std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr_batch(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, std::int64_t lda, std::int64_t stride_a, - std::complex* tau, std::int64_t stride_tau, std::int64_t batch_size, - std::complex* scratchpad, std::int64_t scratchpad_size, + const std::complex* tau, std::int64_t stride_tau, + std::int64_t batch_size, std::complex* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr_batch(sycl::queue& queue, std::int64_t m, std::int64_t n, std::int64_t k, std::complex* a, std::int64_t lda, std::int64_t stride_a, - std::complex* tau, std::int64_t stride_tau, std::int64_t batch_size, - std::complex* scratchpad, std::int64_t scratchpad_size, + const std::complex* tau, std::int64_t stride_tau, + std::int64_t batch_size, std::complex* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr_batch(sycl::queue& queue, std::int64_t* m, std::int64_t* n, std::int64_t* k, - std::complex** a, std::int64_t* lda, std::complex** tau, - std::int64_t group_count, std::int64_t* group_sizes, - std::complex* scratchpad, std::int64_t scratchpad_size, + std::complex** a, std::int64_t* lda, + const std::complex* const* tau, std::int64_t group_count, + std::int64_t* group_sizes, std::complex* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); sycl::event ungqr_batch(sycl::queue& queue, std::int64_t* m, std::int64_t* n, std::int64_t* k, - std::complex** a, std::int64_t* lda, std::complex** tau, - std::int64_t group_count, std::int64_t* group_sizes, - std::complex* scratchpad, std::int64_t scratchpad_size, + std::complex** a, std::int64_t* lda, + const std::complex* const* tau, std::int64_t group_count, + std::int64_t* group_sizes, std::complex* scratchpad, + std::int64_t scratchpad_size, const std::vector& dependencies = {}); template = nullptr>