From 859fb13451fbc499a4911f2f16b9c74c979261e3 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Tue, 14 Nov 2023 13:06:20 +0100 Subject: [PATCH] [HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 8 - Data types (common) + `cusolverNorm_t`, `cusolverIRSRefinement_t`, and `cusolverDirectMode_t` are `UNSUPPORTED` + Updated the regenerated hipify-perl and `SOLVER` `CUDA2HIP` documentation --- bin/hipify-perl | 21 +++++++++- docs/tables/CUSOLVER_API_supported_by_HIP.md | 19 ++++++++++ .../CUSOLVER_API_supported_by_HIP_and_ROC.md | 19 ++++++++++ docs/tables/CUSOLVER_API_supported_by_ROC.md | 19 ++++++++++ src/CUDA2HIP_SOLVER_API_types.cpp | 38 +++++++++++++++++++ 5 files changed, 115 insertions(+), 1 deletion(-) diff --git a/bin/hipify-perl b/bin/hipify-perl index 26e29b03..6490232e 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -7053,11 +7053,14 @@ sub warnUnsupportedFunctions { "cusparseCbsric02_bufferSizeExt", "cusparseBsrSetStridedBatch", "cusparseAlgMode_t", + "cusolverNorm_t", + "cusolverIRSRefinement_t", "cusolverDnXgetrs", "cusolverDnXgetrf_bufferSize", "cusolverDnXgetrf", "cusolverDnSetAdvOptions", "cusolverDnCreateParams", + "cusolverDirectMode_t", "curand_mtgp32_specific", "curand_mtgp32_single_specific", "curand_mtgp32_single", @@ -8671,6 +8674,20 @@ sub warnUnsupportedFunctions { "CUSOLVER_STATUS_IRS_INFOS_NOT_DESTROYED", "CUSOLVER_STATUS_INVALID_WORKSPACE", "CUSOLVER_STATUS_INVALID_LICENSE", + "CUSOLVER_PREC_SS", + "CUSOLVER_PREC_SHT", + "CUSOLVER_PREC_DD", + "CUSOLVER_ONE_NORM", + "CUSOLVER_MAX_NORM", + "CUSOLVER_IRS_REFINE_NOT_SET", + "CUSOLVER_IRS_REFINE_NONE", + "CUSOLVER_IRS_REFINE_GMRES_NOPCOND", + "CUSOLVER_IRS_REFINE_GMRES_GMRES", + "CUSOLVER_IRS_REFINE_GMRES", + "CUSOLVER_IRS_REFINE_CLASSICAL_GMRES", + "CUSOLVER_IRS_REFINE_CLASSICAL", + "CUSOLVER_INF_NORM", + "CUSOLVER_FRO_NORM", "CURAND_REJECTION", "CURAND_POISSON", "CURAND_ORDERING_QUASI_DEFAULT", @@ -9434,7 +9451,9 @@ sub warnUnsupportedFunctions { "CUB_COMPILER_DEPRECATION", "CUB_CAT_", "CUB_CAT", - "CUB_ALIGN" + "CUB_ALIGN", + "CUBLAS_DIRECT_FORWARD", + "CUBLAS_DIRECT_BACKWARD" ) { my $mt = m/($func)/g; diff --git a/docs/tables/CUSOLVER_API_supported_by_HIP.md b/docs/tables/CUSOLVER_API_supported_by_HIP.md index d14e28e8..82288f99 100644 --- a/docs/tables/CUSOLVER_API_supported_by_HIP.md +++ b/docs/tables/CUSOLVER_API_supported_by_HIP.md @@ -4,6 +4,8 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| +|`CUBLAS_DIRECT_BACKWARD`|11.0| | | | | | | | | | +|`CUBLAS_DIRECT_FORWARD`|11.0| | | | | | | | | | |`CUSOLVER_EIG_MODE_NOVECTOR`|8.0| | | |`HIPSOLVER_EIG_MODE_NOVECTOR`|4.5.0| | | |6.1.0| |`CUSOLVER_EIG_MODE_VECTOR`|8.0| | | |`HIPSOLVER_EIG_MODE_VECTOR`|4.5.0| | | |6.1.0| |`CUSOLVER_EIG_RANGE_ALL`|10.1| | | |`HIPSOLVER_EIG_RANGE_ALL`|5.3.0| | | |6.1.0| @@ -12,6 +14,20 @@ |`CUSOLVER_EIG_TYPE_1`|8.0| | | |`HIPSOLVER_EIG_TYPE_1`|4.5.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_2`|8.0| | | |`HIPSOLVER_EIG_TYPE_2`|4.5.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_3`|8.0| | | |`HIPSOLVER_EIG_TYPE_3`|4.5.0| | | |6.1.0| +|`CUSOLVER_FRO_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_INF_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_NOPCOND`|11.0| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NONE`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NOT_SET`|10.2| | | | | | | | | | +|`CUSOLVER_MAX_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_ONE_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_DD`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_SHT`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_SS`|10.2| | | | | | | | | | |`CUSOLVER_STATUS_ALLOC_FAILED`| | | | |`HIPSOLVER_STATUS_ALLOC_FAILED`|4.5.0| | | |6.1.0| |`CUSOLVER_STATUS_ARCH_MISMATCH`| | | | |`HIPSOLVER_STATUS_ARCH_MISMATCH`|4.5.0| | | |6.1.0| |`CUSOLVER_STATUS_EXECUTION_FAILED`| | | | |`HIPSOLVER_STATUS_EXECUTION_FAILED`|4.5.0| | | |6.1.0| @@ -37,10 +53,13 @@ |`CUSOLVER_STATUS_NOT_SUPPORTED`| | | | |`HIPSOLVER_STATUS_NOT_SUPPORTED`|4.5.0| | | |6.1.0| |`CUSOLVER_STATUS_SUCCESS`| | | | |`HIPSOLVER_STATUS_SUCCESS`|4.5.0| | | |6.1.0| |`CUSOLVER_STATUS_ZERO_PIVOT`| | | | |`HIPSOLVER_STATUS_ZERO_PIVOT`| | | | | | +|`cusolverDirectMode_t`|11.0| | | | | | | | | | |`cusolverDnHandle_t`| | | | |`hipsolverHandle_t`|4.5.0| | | |6.1.0| |`cusolverEigMode_t`|8.0| | | |`hipsolverEigMode_t`|4.5.0| | | |6.1.0| |`cusolverEigRange_t`|10.1| | | |`hipsolverEigRange_t`|5.3.0| | | |6.1.0| |`cusolverEigType_t`|8.0| | | |`hipsolverEigType_t`|4.5.0| | | |6.1.0| +|`cusolverIRSRefinement_t`|10.2| | | | | | | | | | +|`cusolverNorm_t`|10.2| | | | | | | | | | |`cusolverStatus_t`| | | | |`hipsolverStatus_t`|4.5.0| | | |6.1.0| ## **2. CUSOLVER Function Reference** diff --git a/docs/tables/CUSOLVER_API_supported_by_HIP_and_ROC.md b/docs/tables/CUSOLVER_API_supported_by_HIP_and_ROC.md index 8a2b7b93..b2809a86 100644 --- a/docs/tables/CUSOLVER_API_supported_by_HIP_and_ROC.md +++ b/docs/tables/CUSOLVER_API_supported_by_HIP_and_ROC.md @@ -4,6 +4,8 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**E**|**ROC**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| +|`CUBLAS_DIRECT_BACKWARD`|11.0| | | | | | | | | | | | | | | | +|`CUBLAS_DIRECT_FORWARD`|11.0| | | | | | | | | | | | | | | | |`CUSOLVER_EIG_MODE_NOVECTOR`|8.0| | | |`HIPSOLVER_EIG_MODE_NOVECTOR`|4.5.0| | | |6.1.0|`rocblas_evect_none`|4.1.0| | | |6.1.0| |`CUSOLVER_EIG_MODE_VECTOR`|8.0| | | |`HIPSOLVER_EIG_MODE_VECTOR`|4.5.0| | | |6.1.0|`rocblas_evect_original`|4.1.0| | | |6.1.0| |`CUSOLVER_EIG_RANGE_ALL`|10.1| | | |`HIPSOLVER_EIG_RANGE_ALL`|5.3.0| | | |6.1.0|`rocblas_erange_all`|5.2.0| | | |6.1.0| @@ -12,6 +14,20 @@ |`CUSOLVER_EIG_TYPE_1`|8.0| | | |`HIPSOLVER_EIG_TYPE_1`|4.5.0| | | |6.1.0|`rocblas_eform_ax`|4.2.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_2`|8.0| | | |`HIPSOLVER_EIG_TYPE_2`|4.5.0| | | |6.1.0|`rocblas_eform_abx`|4.2.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_3`|8.0| | | |`HIPSOLVER_EIG_TYPE_3`|4.5.0| | | |6.1.0|`rocblas_eform_bax`|4.2.0| | | |6.1.0| +|`CUSOLVER_FRO_NORM`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_INF_NORM`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL_GMRES`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_GMRES`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_NOPCOND`|11.0| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NONE`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NOT_SET`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_MAX_NORM`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_ONE_NORM`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_PREC_DD`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_PREC_SHT`|10.2| | | | | | | | | | | | | | | | +|`CUSOLVER_PREC_SS`|10.2| | | | | | | | | | | | | | | | |`CUSOLVER_STATUS_ALLOC_FAILED`| | | | |`HIPSOLVER_STATUS_ALLOC_FAILED`|4.5.0| | | |6.1.0|`rocblas_status_memory_error`|5.6.0| | | |6.1.0| |`CUSOLVER_STATUS_ARCH_MISMATCH`| | | | |`HIPSOLVER_STATUS_ARCH_MISMATCH`|4.5.0| | | |6.1.0|`rocblas_status_arch_mismatch`|5.7.0| | | |6.1.0| |`CUSOLVER_STATUS_EXECUTION_FAILED`| | | | |`HIPSOLVER_STATUS_EXECUTION_FAILED`|4.5.0| | | |6.1.0|`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| @@ -37,10 +53,13 @@ |`CUSOLVER_STATUS_NOT_SUPPORTED`| | | | |`HIPSOLVER_STATUS_NOT_SUPPORTED`|4.5.0| | | |6.1.0|`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| |`CUSOLVER_STATUS_SUCCESS`| | | | |`HIPSOLVER_STATUS_SUCCESS`|4.5.0| | | |6.1.0|`rocblas_status_success`|3.0.0| | | |6.1.0| |`CUSOLVER_STATUS_ZERO_PIVOT`| | | | |`HIPSOLVER_STATUS_ZERO_PIVOT`| | | | | |`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| +|`cusolverDirectMode_t`|11.0| | | | | | | | | | | | | | | | |`cusolverDnHandle_t`| | | | |`hipsolverHandle_t`|4.5.0| | | |6.1.0|`rocblas_handle`|1.5.0| | | |6.1.0| |`cusolverEigMode_t`|8.0| | | |`hipsolverEigMode_t`|4.5.0| | | |6.1.0|`rocblas_evect`|4.1.0| | | |6.1.0| |`cusolverEigRange_t`|10.1| | | |`hipsolverEigRange_t`|5.3.0| | | |6.1.0|`rocblas_erange`|5.2.0| | | |6.1.0| |`cusolverEigType_t`|8.0| | | |`hipsolverEigType_t`|4.5.0| | | |6.1.0|`rocblas_eform`|4.2.0| | | |6.1.0| +|`cusolverIRSRefinement_t`|10.2| | | | | | | | | | | | | | | | +|`cusolverNorm_t`|10.2| | | | | | | | | | | | | | | | |`cusolverStatus_t`| | | | |`hipsolverStatus_t`|4.5.0| | | |6.1.0|`rocblas_status`|3.0.0| | | |6.1.0| ## **2. CUSOLVER Function Reference** diff --git a/docs/tables/CUSOLVER_API_supported_by_ROC.md b/docs/tables/CUSOLVER_API_supported_by_ROC.md index b50e6763..1d052795 100644 --- a/docs/tables/CUSOLVER_API_supported_by_ROC.md +++ b/docs/tables/CUSOLVER_API_supported_by_ROC.md @@ -4,6 +4,8 @@ |**CUDA**|**A**|**D**|**C**|**R**|**ROC**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| +|`CUBLAS_DIRECT_BACKWARD`|11.0| | | | | | | | | | +|`CUBLAS_DIRECT_FORWARD`|11.0| | | | | | | | | | |`CUSOLVER_EIG_MODE_NOVECTOR`|8.0| | | |`rocblas_evect_none`|4.1.0| | | |6.1.0| |`CUSOLVER_EIG_MODE_VECTOR`|8.0| | | |`rocblas_evect_original`|4.1.0| | | |6.1.0| |`CUSOLVER_EIG_RANGE_ALL`|10.1| | | |`rocblas_erange_all`|5.2.0| | | |6.1.0| @@ -12,6 +14,20 @@ |`CUSOLVER_EIG_TYPE_1`|8.0| | | |`rocblas_eform_ax`|4.2.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_2`|8.0| | | |`rocblas_eform_abx`|4.2.0| | | |6.1.0| |`CUSOLVER_EIG_TYPE_3`|8.0| | | |`rocblas_eform_bax`|4.2.0| | | |6.1.0| +|`CUSOLVER_FRO_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_INF_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_CLASSICAL_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_GMRES`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_GMRES_NOPCOND`|11.0| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NONE`|10.2| | | | | | | | | | +|`CUSOLVER_IRS_REFINE_NOT_SET`|10.2| | | | | | | | | | +|`CUSOLVER_MAX_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_ONE_NORM`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_DD`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_SHT`|10.2| | | | | | | | | | +|`CUSOLVER_PREC_SS`|10.2| | | | | | | | | | |`CUSOLVER_STATUS_ALLOC_FAILED`| | | | |`rocblas_status_memory_error`|5.6.0| | | |6.1.0| |`CUSOLVER_STATUS_ARCH_MISMATCH`| | | | |`rocblas_status_arch_mismatch`|5.7.0| | | |6.1.0| |`CUSOLVER_STATUS_EXECUTION_FAILED`| | | | |`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| @@ -37,10 +53,13 @@ |`CUSOLVER_STATUS_NOT_SUPPORTED`| | | | |`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| |`CUSOLVER_STATUS_SUCCESS`| | | | |`rocblas_status_success`|3.0.0| | | |6.1.0| |`CUSOLVER_STATUS_ZERO_PIVOT`| | | | |`rocblas_status_not_implemented`|1.5.0| | | |6.1.0| +|`cusolverDirectMode_t`|11.0| | | | | | | | | | |`cusolverDnHandle_t`| | | | |`rocblas_handle`|1.5.0| | | |6.1.0| |`cusolverEigMode_t`|8.0| | | |`rocblas_evect`|4.1.0| | | |6.1.0| |`cusolverEigRange_t`|10.1| | | |`rocblas_erange`|5.2.0| | | |6.1.0| |`cusolverEigType_t`|8.0| | | |`rocblas_eform`|4.2.0| | | |6.1.0| +|`cusolverIRSRefinement_t`|10.2| | | | | | | | | | +|`cusolverNorm_t`|10.2| | | | | | | | | | |`cusolverStatus_t`| | | | |`rocblas_status`|3.0.0| | | |6.1.0| ## **2. CUSOLVER Function Reference** diff --git a/src/CUDA2HIP_SOLVER_API_types.cpp b/src/CUDA2HIP_SOLVER_API_types.cpp index c75e6a3a..b0a5a38c 100644 --- a/src/CUDA2HIP_SOLVER_API_types.cpp +++ b/src/CUDA2HIP_SOLVER_API_types.cpp @@ -62,6 +62,25 @@ const std::map CUDA_SOLVER_TYPE_NAME_MAP { {"CUSOLVER_EIG_RANGE_ALL", {"HIPSOLVER_EIG_RANGE_ALL", "rocblas_erange_all", CONV_NUMERIC_LITERAL, API_SOLVER, 1, HIP_EXPERIMENTAL}}, {"CUSOLVER_EIG_RANGE_I", {"HIPSOLVER_EIG_RANGE_I", "rocblas_erange_index", CONV_NUMERIC_LITERAL, API_SOLVER, 1, HIP_EXPERIMENTAL}}, {"CUSOLVER_EIG_RANGE_V", {"HIPSOLVER_EIG_RANGE_V", "rocblas_erange_value", CONV_NUMERIC_LITERAL, API_SOLVER, 1, HIP_EXPERIMENTAL}}, + {"cusolverNorm_t", {"hipsolverNorm_t", "", CONV_TYPE, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_INF_NORM", {"HIPSOLVER_INF_NORM", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_MAX_NORM", {"HIPSOLVER_MAX_NORM", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_ONE_NORM", {"HIPSOLVER_ONE_NORM", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_FRO_NORM", {"HIPSOLVER_FRO_NORM", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"cusolverIRSRefinement_t", {"hipsolverIRSRefinement_t", "", CONV_TYPE, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_NOT_SET", {"HIPSOLVER_IRS_REFINE_NOT_SET", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_NONE", {"HIPSOLVER_IRS_REFINE_NONE", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_CLASSICAL", {"HIPSOLVER_IRS_REFINE_CLASSICAL", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_CLASSICAL_GMRES", {"HIPSOLVER_IRS_REFINE_CLASSICAL_GMRES", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_GMRES", {"HIPSOLVER_IRS_REFINE_GMRES", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_GMRES_GMRES", {"HIPSOLVER_IRS_REFINE_GMRES_GMRES", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_IRS_REFINE_GMRES_NOPCOND", {"HIPSOLVER_IRS_REFINE_GMRES_NOPCOND", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_PREC_DD", {"HIPSOLVER_PREC_DD", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_PREC_SS", {"HIPSOLVER_PREC_SS", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUSOLVER_PREC_SHT", {"HIPSOLVER_PREC_SHT", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"cusolverDirectMode_t", {"hipsolverDirectMode_t", "", CONV_TYPE, API_SOLVER, 1, UNSUPPORTED}}, + {"CUBLAS_DIRECT_FORWARD", {"HIPBLAS_DIRECT_FORWARD", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, + {"CUBLAS_DIRECT_BACKWARD", {"HIPBLAS_DIRECT_BACKWARD", "", CONV_NUMERIC_LITERAL, API_SOLVER, 1, UNSUPPORTED}}, }; const std::map CUDA_SOLVER_TYPE_NAME_VER_MAP { @@ -89,6 +108,25 @@ const std::map CUDA_SOLVER_TYPE_NAME_VER_MAP { {"CUSOLVER_EIG_RANGE_ALL", {CUDA_101, CUDA_0, CUDA_0}}, {"CUSOLVER_EIG_RANGE_I", {CUDA_101, CUDA_0, CUDA_0}}, {"CUSOLVER_EIG_RANGE_V", {CUDA_101, CUDA_0, CUDA_0}}, + {"cusolverNorm_t", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_INF_NORM", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_MAX_NORM", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_ONE_NORM", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_FRO_NORM", {CUDA_102, CUDA_0, CUDA_0}}, + {"cusolverIRSRefinement_t", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_NOT_SET", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_NONE", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_CLASSICAL", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_CLASSICAL_GMRES", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_GMRES", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_GMRES_GMRES", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_IRS_REFINE_GMRES_NOPCOND", {CUDA_110, CUDA_0, CUDA_0}}, + {"CUSOLVER_PREC_DD", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_PREC_SS", {CUDA_102, CUDA_0, CUDA_0}}, + {"CUSOLVER_PREC_SHT", {CUDA_102, CUDA_0, CUDA_0}}, + {"cusolverDirectMode_t", {CUDA_110, CUDA_0, CUDA_0}}, + {"CUBLAS_DIRECT_FORWARD", {CUDA_110, CUDA_0, CUDA_0}}, + {"CUBLAS_DIRECT_BACKWARD", {CUDA_110, CUDA_0, CUDA_0}}, }; const std::map HIP_SOLVER_TYPE_NAME_VER_MAP {