From 7b1c1dbd11bfb9d3a3170b8e21e2a7b75d354172 Mon Sep 17 00:00:00 2001 From: Spencer Patty Date: Thu, 4 Apr 2024 12:01:29 -0700 Subject: [PATCH 1/4] [Sparse BLAS]remove deprecation warning note in 2024.1 by switching to newly added API --- src/sparse_blas/backends/mkl_common/mkl_helper.hpp | 1 + .../backends/mkl_common/mkl_operations.cxx | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/sparse_blas/backends/mkl_common/mkl_helper.hpp b/src/sparse_blas/backends/mkl_common/mkl_helper.hpp index da5235ee0..c98d7bcce 100644 --- a/src/sparse_blas/backends/mkl_common/mkl_helper.hpp +++ b/src/sparse_blas/backends/mkl_common/mkl_helper.hpp @@ -20,6 +20,7 @@ // MKLCPU and MKLGPU backends include // This include defines its own oneapi::mkl::sparse namespace with some of the types that are used here: matrix_handle_t, index_base, transpose, uolo, diag. #include +#include "mkl_version.h" // Includes are set up so that oneapi::mkl::sparse namespace refers to the MKLCPU and MKLGPU backends namespace (oneMKL product) // in this file. diff --git a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx index ba6960341..64366c822 100644 --- a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx +++ b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx @@ -87,8 +87,15 @@ std::enable_if_t> trsv(sycl::queue& queue, upl throw mkl::unimplemented("sparse_blas/backends/mkl", __FUNCTION__, "Transposed or conjugate trsv is not supported"); } + +#if defined(__INTEL_MKL__) && (__INTEL_MKL__ >= 2024) && (__INTEL_MKL_UPDATE__ >= 1) + const fpType alpha = fpType(1.0); + oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, alpha, + detail::get_handle(A_handle), x, y); +#else oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, detail::get_handle(A_handle), x, y); +#endif } template @@ -102,9 +109,16 @@ std::enable_if_t, sycl::event> trsv( "Transposed or conjugate trsv is not supported"); } // TODO: Remove const_cast in future oneMKL release +#if defined(__INTEL_MKL__) && (__INTEL_MKL__ >= 2024) && (__INTEL_MKL_UPDATE__ >= 1) + const fpType alpha = fpType(1.0); + return oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, alpha, + detail::get_handle(A_handle), const_cast(x), y, + dependencies); +#else return oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, detail::get_handle(A_handle), const_cast(x), y, dependencies); +#endif } template From c4d70950f5563c66891cd7c3894c475dae207a24 Mon Sep 17 00:00:00 2001 From: Spencer Patty Date: Thu, 4 Apr 2024 12:13:18 -0700 Subject: [PATCH 2/4] run clang formatter --- src/sparse_blas/backends/mkl_common/mkl_operations.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx index 64366c822..b357d0474 100644 --- a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx +++ b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx @@ -64,7 +64,8 @@ std::enable_if_t> gemv( sycl::queue& queue, transpose transpose_val, const fpType alpha, detail::matrix_handle* A_handle, sycl::buffer& x, const fpType beta, sycl::buffer& y) { - oneapi::mkl::sparse::gemv(queue, transpose_val, alpha, detail::get_handle(A_handle), x, beta, y); + oneapi::mkl::sparse::gemv(queue, transpose_val, alpha, detail::get_handle(A_handle), x, beta, + y); } template @@ -72,8 +73,8 @@ std::enable_if_t, sycl::event> gemv( sycl::queue& queue, transpose transpose_val, const fpType alpha, detail::matrix_handle* A_handle, const fpType* x, const fpType beta, fpType* y, const std::vector& dependencies) { - return oneapi::mkl::sparse::gemv(queue, transpose_val, alpha, detail::get_handle(A_handle), x, beta, y, - dependencies); + return oneapi::mkl::sparse::gemv(queue, transpose_val, alpha, detail::get_handle(A_handle), x, + beta, y, dependencies); } template From 14478c47423285937071fc031572e67e3e1d4455 Mon Sep 17 00:00:00 2001 From: Spencer Patty Date: Fri, 5 Apr 2024 08:34:28 -0700 Subject: [PATCH 3/4] remove 2024.0 compliant call and add static_cast to void implicit casts --- .../backends/mkl_common/mkl_operations.cxx | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx index b357d0474..ee2cec9dd 100644 --- a/src/sparse_blas/backends/mkl_common/mkl_operations.cxx +++ b/src/sparse_blas/backends/mkl_common/mkl_operations.cxx @@ -89,14 +89,9 @@ std::enable_if_t> trsv(sycl::queue& queue, upl "Transposed or conjugate trsv is not supported"); } -#if defined(__INTEL_MKL__) && (__INTEL_MKL__ >= 2024) && (__INTEL_MKL_UPDATE__ >= 1) - const fpType alpha = fpType(1.0); + const fpType alpha = static_cast(1); oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, alpha, detail::get_handle(A_handle), x, y); -#else - oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, - detail::get_handle(A_handle), x, y); -#endif } template @@ -110,16 +105,10 @@ std::enable_if_t, sycl::event> trsv( "Transposed or conjugate trsv is not supported"); } // TODO: Remove const_cast in future oneMKL release -#if defined(__INTEL_MKL__) && (__INTEL_MKL__ >= 2024) && (__INTEL_MKL_UPDATE__ >= 1) - const fpType alpha = fpType(1.0); + const fpType alpha = static_cast(1); return oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, alpha, detail::get_handle(A_handle), const_cast(x), y, dependencies); -#else - return oneapi::mkl::sparse::trsv(queue, uplo_val, transpose_val, diag_val, - detail::get_handle(A_handle), const_cast(x), y, - dependencies); -#endif } template From 37c639865027e0d82d19fc817b7db49fcfa5ff51 Mon Sep 17 00:00:00 2001 From: Spencer Patty Date: Fri, 5 Apr 2024 09:17:22 -0700 Subject: [PATCH 4/4] Update src/sparse_blas/backends/mkl_common/mkl_helper.hpp Co-authored-by: Romain Biessy --- src/sparse_blas/backends/mkl_common/mkl_helper.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sparse_blas/backends/mkl_common/mkl_helper.hpp b/src/sparse_blas/backends/mkl_common/mkl_helper.hpp index c98d7bcce..da5235ee0 100644 --- a/src/sparse_blas/backends/mkl_common/mkl_helper.hpp +++ b/src/sparse_blas/backends/mkl_common/mkl_helper.hpp @@ -20,7 +20,6 @@ // MKLCPU and MKLGPU backends include // This include defines its own oneapi::mkl::sparse namespace with some of the types that are used here: matrix_handle_t, index_base, transpose, uolo, diag. #include -#include "mkl_version.h" // Includes are set up so that oneapi::mkl::sparse namespace refers to the MKLCPU and MKLGPU backends namespace (oneMKL product) // in this file.