From 957747c42b0bbc91955088f11bc3b81ba4a0cfa0 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 1 Jan 2024 13:50:13 +0000 Subject: [PATCH] [HIPIFY][#674][rocSPARSE][feature] rocSPARSE support - Step 79 - functions `rocsparse_(s|d|c|z)axpyi` + Updated `SPARSE` synthetic tests, the regenerated hipify-perl, and `SPARSE` `CUDA2HIP` documentation --- bin/hipify-perl | 4 ++++ .../CUSPARSE_API_supported_by_HIP_and_ROC.md | 8 ++++---- docs/tables/CUSPARSE_API_supported_by_ROC.md | 8 ++++---- src/CUDA2HIP_SPARSE_API_functions.cpp | 12 +++++++---- .../synthetic/libraries/cusparse2hipsparse.cu | 20 +++++++++++++++++++ .../synthetic/libraries/cusparse2rocsparse.cu | 20 +++++++++++++++++++ 6 files changed, 60 insertions(+), 12 deletions(-) diff --git a/bin/hipify-perl b/bin/hipify-perl index 51d50bad..5cce7aee 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -2257,6 +2257,7 @@ sub rocSubstitutions { subst("cusolverDnZpotrf", "rocsolver_zpotrf", "library"); subst("cusparseAxpby", "rocsparse_axpby", "library"); subst("cusparseBlockedEllGet", "rocsparse_bell_get", "library"); + subst("cusparseCaxpyi", "rocsparse_caxpyi", "library"); subst("cusparseCbsr2csr", "rocsparse_cbsr2csr", "library"); subst("cusparseCbsric02", "rocsparse_cbsric0", "library"); subst("cusparseCbsric02_analysis", "rocsparse_cbsric0_analysis", "library"); @@ -2348,6 +2349,7 @@ sub rocSubstitutions { subst("cusparseCsrGet", "rocsparse_csr_get", "library"); subst("cusparseCsrSetPointers", "rocsparse_csr_set_pointers", "library"); subst("cusparseCsrSetStridedBatch", "rocsparse_csr_set_strided_batch", "library"); + subst("cusparseDaxpyi", "rocsparse_daxpyi", "library"); subst("cusparseDbsr2csr", "rocsparse_dbsr2csr", "library"); subst("cusparseDbsric02", "rocsparse_dbsric0", "library"); subst("cusparseDbsric02_analysis", "rocsparse_dbsric0_analysis", "library"); @@ -2457,6 +2459,7 @@ sub rocSubstitutions { subst("cusparseSDDMM", "rocsparse_sddmm", "library"); subst("cusparseSDDMM_bufferSize", "rocsparse_sddmm_buffer_size", "library"); subst("cusparseSDDMM_preprocess", "rocsparse_sddmm_preprocess", "library"); + subst("cusparseSaxpyi", "rocsparse_saxpyi", "library"); subst("cusparseSbsr2csr", "rocsparse_sbsr2csr", "library"); subst("cusparseSbsric02", "rocsparse_sbsric0", "library"); subst("cusparseSbsric02_analysis", "rocsparse_sbsric0_analysis", "library"); @@ -2581,6 +2584,7 @@ sub rocSubstitutions { subst("cusparseXcsrsort_bufferSizeExt", "rocsparse_csrsort_buffer_size", "library"); subst("cusparseXcsrsv2_zeroPivot", "rocsparse_csrsv_zero_pivot", "library"); subst("cusparseXgebsr2gebsrNnz", "rocsparse_gebsr2gebsr_nnz", "library"); + subst("cusparseZaxpyi", "rocsparse_zaxpyi", "library"); subst("cusparseZbsr2csr", "rocsparse_zbsr2csr", "library"); subst("cusparseZbsric02", "rocsparse_zbsric0", "library"); subst("cusparseZbsric02_analysis", "rocsparse_zbsric0_analysis", "library"); diff --git a/docs/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md b/docs/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md index 9e4f50f9..d8122028 100644 --- a/docs/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md +++ b/docs/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md @@ -263,25 +263,25 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**E**|**ROC**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| -|`cusparseCaxpyi`| |11.0| |12.0|`hipsparseCaxpyi`|3.1.0| | | | | | | | | | | +|`cusparseCaxpyi`| |11.0| |12.0|`hipsparseCaxpyi`|3.1.0| | | | |`rocsparse_caxpyi`|1.9.0| | | | | |`cusparseCdotci`| |10.2| |11.0|`hipsparseCdotci`|3.1.0| | | | |`rocsparse_cdotci`|3.0.0| | | | | |`cusparseCdoti`| |10.2| |11.0|`hipsparseCdoti`|3.1.0| | | | |`rocsparse_cdoti`|1.9.0| | | | | |`cusparseCgthr`| |11.0| |12.0|`hipsparseCgthr`|3.1.0| | | | |`rocsparse_cgthr`|1.9.0| | | | | |`cusparseCgthrz`| |11.0| |12.0|`hipsparseCgthrz`|3.1.0| | | | |`rocsparse_cgthrz`|1.9.0| | | | | |`cusparseCsctr`| |11.0| |12.0|`hipsparseCsctr`|3.1.0| | | | |`rocsparse_csctr`|1.9.0| | | | | -|`cusparseDaxpyi`| |11.0| |12.0|`hipsparseDaxpyi`|1.9.2| | | | | | | | | | | +|`cusparseDaxpyi`| |11.0| |12.0|`hipsparseDaxpyi`|1.9.2| | | | |`rocsparse_daxpyi`|1.9.0| | | | | |`cusparseDdoti`| |10.2| |11.0|`hipsparseDdoti`|1.9.2| | | | |`rocsparse_ddoti`|1.9.0| | | | | |`cusparseDgthr`| |11.0| |12.0|`hipsparseDgthr`|1.9.2| | | | |`rocsparse_dgthr`|1.9.0| | | | | |`cusparseDgthrz`| |11.0| |12.0|`hipsparseDgthrz`|1.9.2| | | | |`rocsparse_dgthrz`|1.9.0| | | | | |`cusparseDroti`| |11.0| |12.0|`hipsparseDroti`|1.9.2| | | | |`rocsparse_droti`|1.9.0| | | | | |`cusparseDsctr`| |11.0| |12.0|`hipsparseDsctr`|1.9.2| | | | |`rocsparse_dsctr`|1.9.0| | | | | -|`cusparseSaxpyi`| |11.0| |12.0|`hipsparseSaxpyi`|1.9.2| | | | | | | | | | | +|`cusparseSaxpyi`| |11.0| |12.0|`hipsparseSaxpyi`|1.9.2| | | | |`rocsparse_saxpyi`|1.9.0| | | | | |`cusparseSdoti`| |10.2| |11.0|`hipsparseSdoti`|1.9.2| | | | |`rocsparse_sdoti`|1.9.0| | | | | |`cusparseSgthr`| |11.0| |12.0|`hipsparseSgthr`|1.9.2| | | | |`rocsparse_sgthr`|1.9.0| | | | | |`cusparseSgthrz`| |11.0| |12.0|`hipsparseSgthrz`|1.9.2| | | | |`rocsparse_sgthrz`|1.9.0| | | | | |`cusparseSroti`| |11.0| |12.0|`hipsparseSroti`|1.9.2| | | | |`rocsparse_sroti`|1.9.0| | | | | |`cusparseSsctr`| |11.0| |12.0|`hipsparseSsctr`|1.9.2| | | | |`rocsparse_ssctr`|1.9.0| | | | | -|`cusparseZaxpyi`| |11.0| |12.0|`hipsparseZaxpyi`|3.1.0| | | | | | | | | | | +|`cusparseZaxpyi`| |11.0| |12.0|`hipsparseZaxpyi`|3.1.0| | | | |`rocsparse_zaxpyi`|1.9.0| | | | | |`cusparseZdotci`| |10.2| |11.0|`hipsparseZdotci`|3.1.0| | | | |`rocsparse_zdotci`|3.0.0| | | | | |`cusparseZdoti`| |10.2| |11.0|`hipsparseZdoti`|3.1.0| | | | |`rocsparse_zdoti`|1.9.0| | | | | |`cusparseZgthr`| |11.0| |12.0|`hipsparseZgthr`|3.1.0| | | | |`rocsparse_zgthr`|1.9.0| | | | | diff --git a/docs/tables/CUSPARSE_API_supported_by_ROC.md b/docs/tables/CUSPARSE_API_supported_by_ROC.md index 407cd0fb..a0dd5f2d 100644 --- a/docs/tables/CUSPARSE_API_supported_by_ROC.md +++ b/docs/tables/CUSPARSE_API_supported_by_ROC.md @@ -263,25 +263,25 @@ |**CUDA**|**A**|**D**|**C**|**R**|**ROC**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| -|`cusparseCaxpyi`| |11.0| |12.0| | | | | | | +|`cusparseCaxpyi`| |11.0| |12.0|`rocsparse_caxpyi`|1.9.0| | | | | |`cusparseCdotci`| |10.2| |11.0|`rocsparse_cdotci`|3.0.0| | | | | |`cusparseCdoti`| |10.2| |11.0|`rocsparse_cdoti`|1.9.0| | | | | |`cusparseCgthr`| |11.0| |12.0|`rocsparse_cgthr`|1.9.0| | | | | |`cusparseCgthrz`| |11.0| |12.0|`rocsparse_cgthrz`|1.9.0| | | | | |`cusparseCsctr`| |11.0| |12.0|`rocsparse_csctr`|1.9.0| | | | | -|`cusparseDaxpyi`| |11.0| |12.0| | | | | | | +|`cusparseDaxpyi`| |11.0| |12.0|`rocsparse_daxpyi`|1.9.0| | | | | |`cusparseDdoti`| |10.2| |11.0|`rocsparse_ddoti`|1.9.0| | | | | |`cusparseDgthr`| |11.0| |12.0|`rocsparse_dgthr`|1.9.0| | | | | |`cusparseDgthrz`| |11.0| |12.0|`rocsparse_dgthrz`|1.9.0| | | | | |`cusparseDroti`| |11.0| |12.0|`rocsparse_droti`|1.9.0| | | | | |`cusparseDsctr`| |11.0| |12.0|`rocsparse_dsctr`|1.9.0| | | | | -|`cusparseSaxpyi`| |11.0| |12.0| | | | | | | +|`cusparseSaxpyi`| |11.0| |12.0|`rocsparse_saxpyi`|1.9.0| | | | | |`cusparseSdoti`| |10.2| |11.0|`rocsparse_sdoti`|1.9.0| | | | | |`cusparseSgthr`| |11.0| |12.0|`rocsparse_sgthr`|1.9.0| | | | | |`cusparseSgthrz`| |11.0| |12.0|`rocsparse_sgthrz`|1.9.0| | | | | |`cusparseSroti`| |11.0| |12.0|`rocsparse_sroti`|1.9.0| | | | | |`cusparseSsctr`| |11.0| |12.0|`rocsparse_ssctr`|1.9.0| | | | | -|`cusparseZaxpyi`| |11.0| |12.0| | | | | | | +|`cusparseZaxpyi`| |11.0| |12.0|`rocsparse_zaxpyi`|1.9.0| | | | | |`cusparseZdotci`| |10.2| |11.0|`rocsparse_zdotci`|3.0.0| | | | | |`cusparseZdoti`| |10.2| |11.0|`rocsparse_zdoti`|1.9.0| | | | | |`cusparseZgthr`| |11.0| |12.0|`rocsparse_zgthr`|1.9.0| | | | | diff --git a/src/CUDA2HIP_SPARSE_API_functions.cpp b/src/CUDA2HIP_SPARSE_API_functions.cpp index ed3e16fc..370854e6 100644 --- a/src/CUDA2HIP_SPARSE_API_functions.cpp +++ b/src/CUDA2HIP_SPARSE_API_functions.cpp @@ -84,10 +84,10 @@ const std::map CUDA_SPARSE_FUNCTION_MAP { {"cusparseDestroyColorInfo", {"hipsparseDestroyColorInfo", "rocsparse_destroy_color_info", CONV_LIB_FUNC, API_SPARSE, 7, CUDA_DEPRECATED}}, // 8. cuSPARSE Level 1 Function Reference - {"cusparseSaxpyi", {"hipsparseSaxpyi", "", CONV_LIB_FUNC, API_SPARSE, 8, ROC_UNSUPPORTED | CUDA_DEPRECATED | CUDA_REMOVED}}, - {"cusparseDaxpyi", {"hipsparseDaxpyi", "", CONV_LIB_FUNC, API_SPARSE, 8, ROC_UNSUPPORTED | CUDA_DEPRECATED | CUDA_REMOVED}}, - {"cusparseCaxpyi", {"hipsparseCaxpyi", "", CONV_LIB_FUNC, API_SPARSE, 8, ROC_UNSUPPORTED | CUDA_DEPRECATED | CUDA_REMOVED}}, - {"cusparseZaxpyi", {"hipsparseZaxpyi", "", CONV_LIB_FUNC, API_SPARSE, 8, ROC_UNSUPPORTED | CUDA_DEPRECATED | CUDA_REMOVED}}, + {"cusparseSaxpyi", {"hipsparseSaxpyi", "rocsparse_saxpyi", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED}}, + {"cusparseDaxpyi", {"hipsparseDaxpyi", "rocsparse_daxpyi", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED}}, + {"cusparseCaxpyi", {"hipsparseCaxpyi", "rocsparse_caxpyi", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED}}, + {"cusparseZaxpyi", {"hipsparseZaxpyi", "rocsparse_zaxpyi", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED}}, // TODO: rocsparse_get_stream and hipStreamSynchronize need to be added correspondingly before and after rocsparse_(s|d|c|z)doti call, because cusparse(S|D|C|Z)doti is blocking, and rocsparse_(s|d|c|z)doti is not {"cusparseSdoti", {"hipsparseSdoti", "rocsparse_sdoti", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED}}, @@ -2385,6 +2385,10 @@ const std::map HIP_SPARSE_FUNCTION_VER_MAP { {"rocsparse_ddoti", {HIP_1090, HIP_0, HIP_0 }}, {"rocsparse_cdoti", {HIP_1090, HIP_0, HIP_0 }}, {"rocsparse_zdoti", {HIP_1090, HIP_0, HIP_0 }}, + {"rocsparse_saxpyi", {HIP_1090, HIP_0, HIP_0 }}, + {"rocsparse_daxpyi", {HIP_1090, HIP_0, HIP_0 }}, + {"rocsparse_caxpyi", {HIP_1090, HIP_0, HIP_0 }}, + {"rocsparse_zaxpyi", {HIP_1090, HIP_0, HIP_0 }}, }; const std::map CUDA_SPARSE_FUNCTION_CHANGED_VER_MAP { diff --git a/tests/unit_tests/synthetic/libraries/cusparse2hipsparse.cu b/tests/unit_tests/synthetic/libraries/cusparse2hipsparse.cu index 05e3e48d..d0ff7a34 100644 --- a/tests/unit_tests/synthetic/libraries/cusparse2hipsparse.cu +++ b/tests/unit_tests/synthetic/libraries/cusparse2hipsparse.cu @@ -2775,6 +2775,26 @@ int main() { // HIP: DEPRECATED_CUDA_11000("The routine will be removed in CUDA 12") HIPSPARSE_EXPORT hipsparseStatus_t hipsparseSgthr(hipsparseHandle_t handle, int nnz, const float* y, float* xVal, const int* xInd, hipsparseIndexBase_t idxBase); // CHECK: status_t = hipsparseSgthr(handle_t, innz, &fY, &fX, &xInd, indexBase_t); status_t = cusparseSgthr(handle_t, innz, &fY, &fX, &xInd, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseZaxpyi(cusparseHandle_t handle, int nnz, const cuDoubleComplex* alpha, const cuDoubleComplex* xVal, const int* xInd, cuDoubleComplex* y, cusparseIndexBase_t idxBase); + // HIP: DEPRECATED_CUDA_11000("The routine will be removed in CUDA 12") HIPSPARSE_EXPORT hipsparseStatus_t hipsparseZaxpyi(hipsparseHandle_t handle, int nnz, const hipDoubleComplex* alpha, const hipDoubleComplex* xVal, const int* xInd, hipDoubleComplex* y, hipsparseIndexBase_t idxBase); + // CHECK: status_t = hipsparseZaxpyi(handle_t, innz, &dcomplexAlpha, &dcomplexX, &xInd, &dcomplexY, indexBase_t); + status_t = cusparseZaxpyi(handle_t, innz, &dcomplexAlpha, &dcomplexX, &xInd, &dcomplexY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseCaxpyi(cusparseHandle_t handle, int nnz, const cuComplex* alpha, const cuComplex* xVal, const int* xInd, cuComplex* y, cusparseIndexBase_t idxBase); + // HIP: DEPRECATED_CUDA_11000("The routine will be removed in CUDA 12") HIPSPARSE_EXPORT hipsparseStatus_t hipsparseCaxpyi(hipsparseHandle_t handle, int nnz, const hipComplex* alpha, const hipComplex* xVal, const int* xInd, hipComplex* y, hipsparseIndexBase_t idxBase); + // CHECK: status_t = hipsparseCaxpyi(handle_t, innz, &complexAlpha, &complexX, &xInd, &complexY, indexBase_t); + status_t = cusparseCaxpyi(handle_t, innz, &complexAlpha, &complexX, &xInd, &complexY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseDaxpyi(cusparseHandle_t handle, int nnz, const double* alpha, const double* xVal, const int* xInd, double* y, cusparseIndexBase_t idxBase); + // HIP: DEPRECATED_CUDA_11000("The routine will be removed in CUDA 12") HIPSPARSE_EXPORT hipsparseStatus_t hipsparseDaxpyi(hipsparseHandle_t handle, int nnz, const double* alpha, const double* xVal, const int* xInd, double* y, hipsparseIndexBase_t idxBase); + // CHECK: status_t = hipsparseDaxpyi(handle_t, innz, &dAlpha, &dX, &xInd, &dY, indexBase_t); + status_t = cusparseDaxpyi(handle_t, innz, &dAlpha, &dX, &xInd, &dY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseSaxpyi(cusparseHandle_t handle, int nnz, const float* alpha, const float* xVal, const int* xInd, float* y, cusparseIndexBase_t idxBase); + // HIP: DEPRECATED_CUDA_11000("The routine will be removed in CUDA 12") HIPSPARSE_EXPORT hipsparseStatus_t hipsparseSaxpyi(hipsparseHandle_t handle, int nnz, const float* alpha, const float* xVal, const int* xInd, float* y, hipsparseIndexBase_t idxBase); + // CHECK: status_t = hipsparseSaxpyi(handle_t, innz, &fAlpha, &fX, &xInd, &fY, indexBase_t); + status_t = cusparseSaxpyi(handle_t, innz, &fAlpha, &fX, &xInd, &fY, indexBase_t); #endif #if CUDA_VERSION >= 12000 diff --git a/tests/unit_tests/synthetic/libraries/cusparse2rocsparse.cu b/tests/unit_tests/synthetic/libraries/cusparse2rocsparse.cu index 07591ccc..92c48193 100644 --- a/tests/unit_tests/synthetic/libraries/cusparse2rocsparse.cu +++ b/tests/unit_tests/synthetic/libraries/cusparse2rocsparse.cu @@ -2264,6 +2264,26 @@ int main() { // ROC: ROCSPARSE_EXPORT rocsparse_status rocsparse_sgthr(rocsparse_handle handle, rocsparse_int nnz, const float* y, float* x_val, const rocsparse_int* x_ind, rocsparse_index_base idx_base); // CHECK: status_t = rocsparse_sgthr(handle_t, innz, &fY, &fX, &xInd, indexBase_t); status_t = cusparseSgthr(handle_t, innz, &fY, &fX, &xInd, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseZaxpyi(cusparseHandle_t handle, int nnz, const cuDoubleComplex* alpha, const cuDoubleComplex* xVal, const int* xInd, cuDoubleComplex* y, cusparseIndexBase_t idxBase); + // ROC: ROCSPARSE_EXPORT rocsparse_status rocsparse_zaxpyi(rocsparse_handle handle, rocsparse_int nnz, const rocsparse_double_complex* alpha, const rocsparse_double_complex* x_val, const rocsparse_int* x_ind, rocsparse_double_complex* y, rocsparse_index_base idx_base); + // CHECK: status_t = rocsparse_zaxpyi(handle_t, innz, &dcomplexAlpha, &dcomplexX, &xInd, &dcomplexY, indexBase_t); + status_t = cusparseZaxpyi(handle_t, innz, &dcomplexAlpha, &dcomplexX, &xInd, &dcomplexY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseCaxpyi(cusparseHandle_t handle, int nnz, const cuComplex* alpha, const cuComplex* xVal, const int* xInd, cuComplex* y, cusparseIndexBase_t idxBase); + // ROC: ROCSPARSE_EXPORT rocsparse_status rocsparse_caxpyi(rocsparse_handle handle, rocsparse_int nnz, const rocsparse_float_complex* alpha, const rocsparse_float_complex* x_val, const rocsparse_int* x_ind, rocsparse_float_complex* y, rocsparse_index_base idx_base); + // CHECK: status_t = rocsparse_caxpyi(handle_t, innz, &complexAlpha, &complexX, &xInd, &complexY, indexBase_t); + status_t = cusparseCaxpyi(handle_t, innz, &complexAlpha, &complexX, &xInd, &complexY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseDaxpyi(cusparseHandle_t handle, int nnz, const double* alpha, const double* xVal, const int* xInd, double* y, cusparseIndexBase_t idxBase); + // ROC: ROCSPARSE_EXPORT rocsparse_status rocsparse_daxpyi(rocsparse_handle handle, rocsparse_int nnz, const double* alpha, const double* x_val, const rocsparse_int* x_ind, double* y, rocsparse_index_base idx_base); + // CHECK: status_t = rocsparse_daxpyi(handle_t, innz, &dAlpha, &dX, &xInd, &dY, indexBase_t); + status_t = cusparseDaxpyi(handle_t, innz, &dAlpha, &dX, &xInd, &dY, indexBase_t); + + // CUDA: CUSPARSE_DEPRECATED(cusparseAxpby) cusparseStatus_t CUSPARSEAPI cusparseSaxpyi(cusparseHandle_t handle, int nnz, const float* alpha, const float* xVal, const int* xInd, float* y, cusparseIndexBase_t idxBase); + // ROC: ROCSPARSE_EXPORT rocsparse_status rocsparse_saxpyi(rocsparse_handle handle, rocsparse_int nnz, const float* alpha, const float* x_val, const rocsparse_int* x_ind, float* y, rocsparse_index_base idx_base); + // CHECK: status_t = rocsparse_saxpyi(handle_t, innz, &fAlpha, &fX, &xInd, &fY, indexBase_t); + status_t = cusparseSaxpyi(handle_t, innz, &fAlpha, &fX, &xInd, &fY, indexBase_t); #endif #if CUDA_VERSION >= 12010 && CUSPARSE_VERSION >= 12100