diff --git a/projects/hip/docs/markdown/CUBLAS_API_supported_by_HIP.md b/projects/hip/docs/markdown/CUBLAS_API_supported_by_HIP.md new file mode 100644 index 0000000000..932092612b --- /dev/null +++ b/projects/hip/docs/markdown/CUBLAS_API_supported_by_HIP.md @@ -0,0 +1,516 @@ +# CUBLAS API supported by HIP + +## **1. CUBLAS Data types** + +| **type** | **CUDA** | **HIP** |**HIP value** (if differs) | +|-------------:|---------------------------------------------------------------|------------------------------------------------------------|---------------------------| +| enum |***`cublasStatus`*** |***`hipblasStatus_t`*** | +| enum |***`cublasStatus_t`*** |***`hipblasStatus_t`*** | +| 0 |*`CUBLAS_STATUS_SUCCESS`* |*`HIPBLAS_STATUS_SUCCESS`* | +| 1 |*`CUBLAS_STATUS_NOT_INITIALIZED`* |*`HIPBLAS_STATUS_NOT_INITIALIZED`* | +| 3 |*`CUBLAS_STATUS_ALLOC_FAILED`* |*`HIPBLAS_STATUS_ALLOC_FAILED`* | 2 | +| 7 |*`CUBLAS_STATUS_INVALID_VALUE`* |*`HIPBLAS_STATUS_INVALID_VALUE`* | 3 | +| 8 |*`CUBLAS_STATUS_ARCH_MISMATCH`* |*`HIPBLAS_STATUS_ARCH_MISMATCH`* | | +| 11 |*`CUBLAS_STATUS_MAPPING_ERROR`* |*`HIPBLAS_STATUS_MAPPING_ERROR`* | 4 | +| 13 |*`CUBLAS_STATUS_EXECUTION_FAILED`* |*`HIPBLAS_STATUS_EXECUTION_FAILED`* | 5 | +| 14 |*`CUBLAS_STATUS_INTERNAL_ERROR`* |*`HIPBLAS_STATUS_INTERNAL_ERROR`* | 6 | +| 15 |*`CUBLAS_STATUS_NOT_SUPPORTED`* |*`HIPBLAS_STATUS_NOT_SUPPORTED`* | 7 | +| 16 |*`CUBLAS_STATUS_LICENSE_ERROR`* | | +| enum |***`cublasOperation_t`*** |***`hipblasOperation_t`*** | +| 0 |*`CUBLAS_OP_N`* |*`HIPBLAS_OP_N`* | 111 | +| 1 |*`CUBLAS_OP_T`* |*`HIPBLAS_OP_T`* | 112 | +| 2 |*`CUBLAS_OP_C`* |*`HIPBLAS_OP_C`* | 113 | +| enum |***`cublasFillMode_t`*** |***`hipblasFillMode_t`*** | +| 0 |*`CUBLAS_FILL_MODE_LOWER`* |*`HIPBLAS_FILL_MODE_LOWER`* | 121 | +| 1 |*`CUBLAS_FILL_MODE_UPPER`* |*`HIPBLAS_FILL_MODE_UPPER`* | 122 | +| enum |***`cublasDiagType_t`*** |***`hipblasDiagType_t`*** | +| 0 |*`CUBLAS_DIAG_NON_UNIT`* |*`HIPBLAS_DIAG_NON_UNIT`* | 131 | +| 1 |*`CUBLAS_DIAG_UNIT`* |*`HIPBLAS_DIAG_UNIT`* | 132 | +| enum |***`cublasSideMode_t`*** |***`hipblasSideMode_t`*** | +| 0 |*`CUBLAS_SIDE_LEFT`* |*`HIPBLAS_SIDE_LEFT`* | 141 | +| 1 |*`CUBLAS_SIDE_RIGHT`* |*`HIPBLAS_SIDE_RIGHT`* | 142 | +| enum |***`cublasPointerMode_t`*** |***`hipblasPointerMode_t`*** | +| 0 |*`CUBLAS_POINTER_MODE_HOST`* |*`HIPBLAS_POINTER_MODE_HOST`* | +| 1 |*`CUBLAS_POINTER_MODE_DEVICE`* |*`HIPBLAS_POINTER_MODE_DEVICE`* | +| enum |***`cublasAtomicsMode_t`*** | | +| 0 |*`CUBLAS_ATOMICS_NOT_ALLOWED`* | | +| 1 |*`CUBLAS_ATOMICS_ALLOWED`* | | +| enum |***`cublasAtomicsMode_t`*** | | +| -1 |*`CUBLAS_GEMM_DFALT`* | | +| -1 |*`CUBLAS_GEMM_DEFAULT`* | | +| 0 |*`CUBLAS_GEMM_ALGO0`* | | +| 1 |*`CUBLAS_GEMM_ALGO1`* | | +| 2 |*`CUBLAS_GEMM_ALGO2`* | | +| 3 |*`CUBLAS_GEMM_ALGO3`* | | +| 4 |*`CUBLAS_GEMM_ALGO4`* | | +| 5 |*`CUBLAS_GEMM_ALGO5`* | | +| 6 |*`CUBLAS_GEMM_ALGO6`* | | +| 7 |*`CUBLAS_GEMM_ALGO7`* | | +| 8 |*`CUBLAS_GEMM_ALGO8`* | | +| 9 |*`CUBLAS_GEMM_ALGO9`* | | +| 10 |*`CUBLAS_GEMM_ALGO10`* | | +| 11 |*`CUBLAS_GEMM_ALGO11`* | | +| 12 |*`CUBLAS_GEMM_ALGO12`* | | +| 13 |*`CUBLAS_GEMM_ALGO13`* | | +| 14 |*`CUBLAS_GEMM_ALGO14`* | | +| 15 |*`CUBLAS_GEMM_ALGO15`* | | +| 16 |*`CUBLAS_GEMM_ALGO16`* | | +| 17 |*`CUBLAS_GEMM_ALGO17`* | | +| 18 |*`CUBLAS_GEMM_ALGO18`* | | +| 19 |*`CUBLAS_GEMM_ALGO19`* | | +| 20 |*`CUBLAS_GEMM_ALGO20`* | | +| 21 |*`CUBLAS_GEMM_ALGO21`* | | +| 22 |*`CUBLAS_GEMM_ALGO22`* | | +| 23 |*`CUBLAS_GEMM_ALGO23`* | | +| 99 |*`CUBLAS_GEMM_DEFAULT_TENSOR_OP`* | | +| 99 |*`CUBLAS_GEMM_DFALT_TENSOR_OP`* | | +| 100 |*`CUBLAS_GEMM_ALGO0_TENSOR_OP`* | | +| 101 |*`CUBLAS_GEMM_ALGO1_TENSOR_OP`* | | +| 102 |*`CUBLAS_GEMM_ALGO2_TENSOR_OP`* | | +| 103 |*`CUBLAS_GEMM_ALGO3_TENSOR_OP`* | | +| 104 |*`CUBLAS_GEMM_ALGO4_TENSOR_OP`* | | +| 105 |*`CUBLAS_GEMM_ALGO5_TENSOR_OP`* | | +| 106 |*`CUBLAS_GEMM_ALGO6_TENSOR_OP`* | | +| 107 |*`CUBLAS_GEMM_ALGO7_TENSOR_OP`* | | +| 108 |*`CUBLAS_GEMM_ALGO8_TENSOR_OP`* | | +| 109 |*`CUBLAS_GEMM_ALGO9_TENSOR_OP`* | | +| 110 |*`CUBLAS_GEMM_ALGO10_TENSOR_OP`* | | +| 111 |*`CUBLAS_GEMM_ALGO11_TENSOR_OP`* | | +| 112 |*`CUBLAS_GEMM_ALGO12_TENSOR_OP`* | | +| 113 |*`CUBLAS_GEMM_ALGO13_TENSOR_OP`* | | +| 114 |*`CUBLAS_GEMM_ALGO14_TENSOR_OP`* | | +| 115 |*`CUBLAS_GEMM_ALGO15_TENSOR_OP`* | | +| enum |***`cublasMath_t`*** | | +| 0 |*`CUBLAS_DEFAULT_MATH`* | | +| 1 |*`CUBLAS_TENSOR_OP_MATH`* | | +| enum* |`cublasDataType_t` | | +| struct |`cublasContext` | | +| struct* |`cublasHandle_t` |`hipblasHandle_t` | + +## **2. CUBLAS API functions** + +| **CUDA** | **HIP** | +|-----------------------------------------------------------|-------------------------------------------------| +|`cublasCreate` |`hipblasCreate` | +|`cublasCreate_v2` |`hipblasCreate` | +|`cublasDestroy` |`hipblasDestroy` | +|`cublasDestroy_v2` |`hipblasDestroy` | +|`cublasGetVersion` | | +|`cublasGetVersion_v2` | | +|`cublasGetProperty` | | +|`cublasGetStream` |`hipblasGetStream` | +|`cublasGetStream_v2` |`hipblasGetStream_v2` | +|`cublasSetStream` |`hipblasSetStream` | +|`cublasSetStream_v2` |`hipblasSetStream_v2` | +|`cublasGetPointerMode` |`hipblasGetPointerMode` | +|`cublasGetPointerMode_v2` |`hipblasGetPointerMode_v2` | +|`cublasSetPointerMode` |`hipblasSetPointerMode` | +|`cublasSetPointerMode_v2` |`hipblasSetPointerMode_v2` | +|`cublasGetAtomicsMode` | | +|`cublasSetAtomicsMode` | | +|`cublasGetMathMode` | | +|`cublasSetMathMode` | | +|`cublasLogCallback` | | +|`cublasLoggerConfigure` | | +|`cublasSetLoggerCallback` | | +|`cublasGetLoggerCallback` | | +|`cublasSetVector` |`hipblasSetVector` | +|`cublasGetVector` |`hipblasGetVector` | +|`cublasSetMatrix` |`hipblasSetMatrix` | +|`cublasGetMatrix` |`hipblasGetMatrix` | +|`cublasSetVectorAsync` | | +|`cublasGetVectorAsync` | | +|`cublasSetMatrixAsync` | | +|`cublasGetMatrixAsync` | | +|`cublasXerbla` | | +|`cublasNrm2Ex` | | +|`cublasSnrm2` |`hipblasSnrm2` | +|`cublasSnrm2_v2` |`hipblasSnrm2` | +|`cublasDnrm2` |`hipblasDnrm2` | +|`cublasDnrm2_v2` |`hipblasDnrm2` | +|`cublasScnrm2` | | +|`cublasScnrm2_v2` | | +|`cublasDznrm2` | | +|`cublasDznrm2_v2` | | +|`cublasDotEx` | | +|`cublasDotcEx` | | +|`cublasSdot` |`hipblasSdot` | +|`cublasSdot_v2` |`hipblasSdot` | +|`cublasDdot` |`hipblasDdot` | +|`cublasDdot_v2` |`hipblasDdot` | +|`cublasCdotu` | | +|`cublasCdotu_v2` | | +|`cublasCdotc` | | +|`cublasCdotc_v2` | | +|`cublasZdotu` | | +|`cublasZdotu_v2` | | +|`cublasZdotc` | | +|`cublasZdotc_v2` | | +|`cublasScalEx` | | +|`cublasSscal` |`hipblasSscal` | +|`cublasSscal_v2` |`hipblasSscal` | +|`cublasDscal` |`hipblasDscal` | +|`cublasDscal_v2` |`hipblasDscal` | +|`cublasCscal` | | +|`cublasCscal_v2` | | +|`cublasCsscal` | | +|`cublasCsscal_v2` | | +|`cublasZscal` | | +|`cublasZscal_v2` | | +|`cublasZdscal` | | +|`cublasZdscal_v2` | | +|`cublasAxpyEx` | | +|`cublasSaxpy` |`hipblasSaxpy` | +|`cublasSaxpy_v2` |`hipblasSaxpy` | +|`cublasDaxpy` |`hipblasDaxpy` | +|`cublasDaxpy_v2` |`hipblasDaxpy` | +|`cublasCaxpy` | | +|`cublasCaxpy_v2` | | +|`cublasZaxpy` | | +|`cublasZaxpy_v2` | | +|`cublasScopy` |`hipblasScopy` | +|`cublasScopy_v2` |`hipblasScopy` | +|`cublasDcopy` |`hipblasDcopy` | +|`cublasDcopy_v2` |`hipblasDcopy` | +|`cublasCcopy` | | +|`cublasCcopy_v2` | | +|`cublasZcopy` | | +|`cublasZcopy_v2` | | +|`cublasSswap` | | +|`cublasSswap_v2` | | +|`cublasDswap` | | +|`cublasDswap_v2` | | +|`cublasCswap` | | +|`cublasCswap_v2` | | +|`cublasZswap` | | +|`cublasZswap_v2` | | +|`cublasIsamax` |`hipblasIsamax` | +|`cublasIsamax_v2` |`hipblasIsamax` | +|`cublasIdamax` |`hipblasIdamax` | +|`cublasIdamax_v2` |`hipblasIdamax` | +|`cublasIcamax` | | +|`cublasIcamax_v2` | | +|`cublasIzamax` | | +|`cublasIzamax_v2` | | +|`cublasIsamin` | | +|`cublasIsamin_v2` | | +|`cublasIdamin` | | +|`cublasIdamin_v2` | | +|`cublasIcamin` | | +|`cublasIcamin_v2` | | +|`cublasIzamin` | | +|`cublasIzamin_v2` | | +|`cublasSasum` |`hipblasSasum` | +|`cublasSasum_v2` |`hipblasSasum` | +|`cublasDasum` |`hipblasDasum` | +|`cublasDasum_v2` |`hipblasDasum` | +|`cublasScasum` | | +|`cublasScasum_v2` | | +|`cublasDzasum` | | +|`cublasDzasum_v2` | | +|`cublasSrot` | | +|`cublasSrot_v2` | | +|`cublasDrot` | | +|`cublasDrot_v2` | | +|`cublasCrot` | | +|`cublasCrot_v2` | | +|`cublasZrot` | | +|`cublasZrot_v2` | | +|`cublasZdrot` | | +|`cublasZdrot_v2` | | +|`cublasSrotg` | | +|`cublasSrotg_v2` | | +|`cublasDrotg` | | +|`cublasDrotg_v2` | | +|`cublasCrotg` | | +|`cublasCrotg_v2` | | +|`cublasZrotg` | | +|`cublasZrotg_v2` | | +|`cublasSrotm` | | +|`cublasSrotm_v2` | | +|`cublasDrotm` | | +|`cublasDrotm_v2` | | +|`cublasSrotmg` | | +|`cublasSrotmg_v2` | | +|`cublasDrotmg` | | +|`cublasDrotmg_v2` | | +|`cublasSgemv` |`hipblasSgemv` | +|`cublasSgemv_v2` |`hipblasSgemv` | +|`cublasDgemv` |`hipblasDgemv` | +|`cublasDgemv_v2` |`hipblasDgemv` | +|`cublasCgemv` | | +|`cublasCgemv_v2` | | +|`cublasZgemv` | | +|`cublasZgemv_v2` | | +|`cublasSgbmv` | | +|`cublasSgbmv_v2` | | +|`cublasDgbmv` | | +|`cublasDgbmv_v2` | | +|`cublasCgbmv` | | +|`cublasCgbmv_v2` | | +|`cublasZgbmv` | | +|`cublasZgbmv_v2` | | +|`cublasStrmv` | | +|`cublasStrmv_v2` | | +|`cublasDtrmv` | | +|`cublasDtrmv_v2` | | +|`cublasCtrmv` | | +|`cublasCtrmv_v2` | | +|`cublasZtrmv` | | +|`cublasZtrmv_v2` | | +|`cublasStbmv` | | +|`cublasStbmv_v2` | | +|`cublasDtbmv` | | +|`cublasDtbmv_v2` | | +|`cublasCtbmv` | | +|`cublasCtbmv_v2` | | +|`cublasZtbmv` | | +|`cublasZtbmv_v2` | | +|`cublasStpmv` | | +|`cublasStpmv_v2` | | +|`cublasDtpmv` | | +|`cublasDtpmv_v2` | | +|`cublasCtpmv` | | +|`cublasCtpmv_v2` | | +|`cublasZtpmv` | | +|`cublasZtpmv_v2` | | +|`cublasStrsv` | | +|`cublasStrsv_v2` | | +|`cublasDtrsv` | | +|`cublasDtrsv_v2` | | +|`cublasCtrsv` | | +|`cublasCtrsv_v2` | | +|`cublasZtrsv` | | +|`cublasZtrsv_v2` | | +|`cublasStpsv` | | +|`cublasStpsv_v2` | | +|`cublasDtpsv` | | +|`cublasDtpsv_v2` | | +|`cublasCtpsv` | | +|`cublasCtpsv_v2` | | +|`cublasZtpsv` | | +|`cublasZtpsv_v2` | | +|`cublasStbsv` | | +|`cublasStbsv_v2` | | +|`cublasDtbsv` | | +|`cublasDtbsv_v2` | | +|`cublasCtbsv` | | +|`cublasCtbsv_v2` | | +|`cublasZtbsv` | | +|`cublasZtbsv_v2` | | +|`cublasSsymv` | | +|`cublasSsymv_v2` | | +|`cublasDsymv` | | +|`cublasDsymv_v2` | | +|`cublasCsymv` | | +|`cublasCsymv_v2` | | +|`cublasZsymv` | | +|`cublasZsymv_v2` | | +|`cublasChemv` | | +|`cublasChemv_v2` | | +|`cublasZhemv` | | +|`cublasZhemv_v2` | | +|`cublasSsbmv` | | +|`cublasSsbmv_v2` | | +|`cublasDsbmv` | | +|`cublasDsbmv_v2` | | +|`cublasChbmv` | | +|`cublasChbmv_v2` | | +|`cublasZhbmv` | | +|`cublasZhbmv_v2` | | +|`cublasSspmv` | | +|`cublasSspmv_v2` | | +|`cublasDspmv` | | +|`cublasDspmv_v2` | | +|`cublasChpmv` | | +|`cublasChpmv_v2` | | +|`cublasZhpmv` | | +|`cublasZhpmv_v2` | | +|`cublasSger` |`hipblasSger` | +|`cublasSger_v2` |`hipblasSger` | +|`cublasDger` |`hipblasDger` | +|`cublasDger_v2` |`hipblasDger` | +|`cublasCgeru` | | +|`cublasCgeru_v2` | | +|`cublasCgerc` | | +|`cublasCgerc_v2` | | +|`cublasZgeru` | | +|`cublasZgeru_v2` | | +|`cublasZgerc` | | +|`cublasZgerc_v2` | | +|`cublasSsyr` | | +|`cublasSsyr_v2` | | +|`cublasDsyr` | | +|`cublasDsyr_v2` | | +|`cublasCsyr` | | +|`cublasCsyr_v2` | | +|`cublasZsyr` | | +|`cublasZsyr_v2` | | +|`cublasCher` | | +|`cublasCher_v2` | | +|`cublasZher` | | +|`cublasZher_v2` | | +|`cublasSspr` | | +|`cublasSspr_v2` | | +|`cublasDspr` | | +|`cublasDspr_v2` | | +|`cublasChpr` | | +|`cublasChpr_v2` | | +|`cublasZhpr` | | +|`cublasZhpr_v2` | | +|`cublasSsyr2` | | +|`cublasSsyr2_v2` | | +|`cublasDsyr2` | | +|`cublasDsyr2_v2` | | +|`cublasCsyr2` | | +|`cublasCsyr2_v2` | | +|`cublasZsyr2` | | +|`cublasZsyr2_v2` | | +|`cublasCher2` | | +|`cublasCher2_v2` | | +|`cublasZher2` | | +|`cublasZher2_v2` | | +|`cublasSspr2` | | +|`cublasSspr2_v2` | | +|`cublasDspr2` | | +|`cublasDspr2_v2` | | +|`cublasChpr2` | | +|`cublasChpr2_v2` | | +|`cublasZhpr2` | | +|`cublasZhpr2_v2` | | +|`cublasSgemm` |`hipblasSgemm` | +|`cublasSgemm_v2` |`hipblasSgemm` | +|`cublasDgemm` |`hipblasDgemm` | +|`cublasDgemm_v2` |`hipblasDgemm` | +|`cublasCgemm` |`hipblasCgemm` | +|`cublasCgemm_v2` |`hipblasCgemm` | +|`cublasCgemm3m` | | +|`cublasCgemm3mEx` | | +|`cublasZgemm` | | +|`cublasZgemm_v2` | | +|`cublasZgemm3m` | | +|`cublasHgemm` |`hipblasHgemm` | +|`cublasSgemmEx` | | +|`cublasGemmEx` | | +|`cublasCgemmEx` | | +|`cublasUint8gemmBias` | | +|`cublasSsyrk` | | +|`cublasSsyrk_v2` | | +|`cublasDsyrk` | | +|`cublasDsyrk_v2` | | +|`cublasCsyrk` | | +|`cublasCsyrk_v2` | | +|`cublasZsyrk` | | +|`cublasZsyrk_v2` | | +|`cublasCsyrkEx` | | +|`cublasCsyrk3mEx` | | +|`cublasCherk` | | +|`cublasCherk_v2` | | +|`cublasZherk` | | +|`cublasZherk_v2` | | +|`cublasCherkEx` | | +|`cublasCherk3mEx` | | +|`cublasSsyr2k` | | +|`cublasSsyr2k_v2` | | +|`cublasDsyr2k` | | +|`cublasDsyr2k_v2` | | +|`cublasCsyr2k` | | +|`cublasCsyr2k_v2` | | +|`cublasZsyr2k` | | +|`cublasZsyr2k_v2` | | +|`cublasCher2k` | | +|`cublasCher2k_v2` | | +|`cublasZher2k` | | +|`cublasZher2k_v2` | | +|`cublasSsyrkx` | | +|`cublasDsyrkx` | | +|`cublasCsyrkx` | | +|`cublasZsyrkx` | | +|`cublasCherkx` | | +|`cublasZherkx` | | +|`cublasSsymm` | | +|`cublasSsymm_v2` | | +|`cublasDsymm` | | +|`cublasDsymm_v2` | | +|`cublasCsymm` | | +|`cublasCsymm_v2` | | +|`cublasZsymm` | | +|`cublasZsymm_v2` | | +|`cublasChemm` | | +|`cublasChemm_v2` | | +|`cublasZhemm` | | +|`cublasZhemm_v2` | | +|`cublasStrsm` |`hipblasStrsm` | +|`cublasStrsm_v2` |`hipblasStrsm` | +|`cublasDtrsm` |`hipblasDtrsm` | +|`cublasDtrsm_v2` |`hipblasDtrsm` | +|`cublasCtrsm` | | +|`cublasCtrsm_v2` | | +|`cublasZtrsm` | | +|`cublasZtrsm_v2` | | +|`cublasStrmm` | | +|`cublasStrmm_v2` | | +|`cublasDtrmm` | | +|`cublasDtrmm_v2` | | +|`cublasCtrmm` | | +|`cublasCtrmm_v2` | | +|`cublasZtrmm` | | +|`cublasZtrmm_v2` | | +|`cublasHgemmBatched` | | +|`cublasSgemmBatched` |`hipblasSgemmBatched` | +|`cublasDgemmBatched` |`hipblasDgemmBatched` | +|`cublasCgemmBatched` | | +|`cublasCgemm3mBatched` | | +|`cublasZgemmBatched` | | +|`cublasGemmBatchedEx` | | +|`cublasGemmStridedBatchedEx` | | +|`cublasSgemmStridedBatched` | | +|`cublasDgemmStridedBatched` | | +|`cublasCgemmStridedBatched` | | +|`cublasCgemm3mStridedBatched` | | +|`cublasZgemmStridedBatched` | | +|`cublasHgemmStridedBatched` | | +|`cublasSgeam` |`hipblasSgeam` | +|`cublasDgeam` |`hipblasDgeam` | +|`cublasCgeam` | | +|`cublasZgeam` | | +|`cublasSgetrfBatched` | | +|`cublasDgetrfBatched` | | +|`cublasCgetrfBatched` | | +|`cublasZgetrfBatched` | | +|`cublasSgetriBatched` | | +|`cublasDgetriBatched` | | +|`cublasCgetriBatched` | | +|`cublasZgetriBatched` | | +|`cublasSgetrsBatched` | | +|`cublasDgetrsBatched` | | +|`cublasCgetrsBatched` | | +|`cublasZgetrsBatched` | | +|`cublasStrsmBatched` | | +|`cublasDtrsmBatched` | | +|`cublasCtrsmBatched` | | +|`cublasZtrsmBatched` | | +|`cublasSmatinvBatched` | | +|`cublasDmatinvBatched` | | +|`cublasCmatinvBatched` | | +|`cublasZmatinvBatched` | | +|`cublasSgeqrfBatched` | | +|`cublasDgeqrfBatched` | | +|`cublasCgeqrfBatched` | | +|`cublasZgeqrfBatched` | | +|`cublasSgelsBatched` | | +|`cublasDgelsBatched` | | +|`cublasCgelsBatched` | | +|`cublasZgelsBatched` | | +|`cublasSdgmm` | | +|`cublasDdgmm` | | +|`cublasCdgmm` | | +|`cublasZdgmm` | | +|`cublasStpttr` | | +|`cublasDtpttr` | | +|`cublasCtpttr` | | +|`cublasZtpttr` | | +|`cublasStrttp` | | +|`cublasDtrttp` | | +|`cublasCtrttp` | | +|`cublasZtrttp` | | diff --git a/projects/hip/hipify-clang/src/CUDA2HipMap.cpp b/projects/hip/hipify-clang/src/CUDA2HipMap.cpp index 9939e8d913..63c294ac34 100644 --- a/projects/hip/hipify-clang/src/CUDA2HipMap.cpp +++ b/projects/hip/hipify-clang/src/CUDA2HipMap.cpp @@ -2064,18 +2064,7 @@ const std::map CUDA_IDENTIFIER_MAP{ {"cudaGraphicsResourceGetMappedEglFrame", {"hipGraphicsResourceGetMappedEglFrame", CONV_EGL, API_RUNTIME, HIP_UNSUPPORTED}}, // API_Driver ANALOGUE (cuGraphicsResourceGetMappedEglFrame) ///////////////////////////// cuBLAS ///////////////////////////// - // Blas management functions - {"cublasInit", {"hipblasInit", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasShutdown", {"hipblasShutdown", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGetVersion", {"hipblasGetVersion", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGetError", {"hipblasGetError", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasAlloc", {"hipblasAlloc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasFree", {"hipblasFree", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSetKernelStream", {"hipblasSetKernelStream", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGetAtomicsMode", {"hipblasGetAtomicsMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSetAtomicsMode", {"hipblasSetAtomicsMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGetMathMode", {"hipblasGetMathMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSetMathMode", {"hipblasSetMathMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + // Blas Data Types // Blas operations {"cublasOperation_t", {"hipblasOperation_t", CONV_TYPE, API_BLAS}}, @@ -2084,6 +2073,7 @@ const std::map CUDA_IDENTIFIER_MAP{ {"CUBLAS_OP_C", {"HIPBLAS_OP_C", CONV_NUMERIC_LITERAL, API_BLAS}}, // Blas statuses + {"cublasStatus", {"hipblasStatus_t", CONV_TYPE, API_BLAS}}, {"cublasStatus_t", {"hipblasStatus_t", CONV_TYPE, API_BLAS}}, {"CUBLAS_STATUS_SUCCESS", {"HIPBLAS_STATUS_SUCCESS", CONV_NUMERIC_LITERAL, API_BLAS}}, {"CUBLAS_STATUS_NOT_INITIALIZED", {"HIPBLAS_STATUS_NOT_INITIALIZED", CONV_NUMERIC_LITERAL, API_BLAS}}, @@ -2094,6 +2084,7 @@ const std::map CUDA_IDENTIFIER_MAP{ {"CUBLAS_STATUS_INTERNAL_ERROR", {"HIPBLAS_STATUS_INTERNAL_ERROR", CONV_NUMERIC_LITERAL, API_BLAS}}, {"CUBLAS_STATUS_NOT_SUPPORTED", {"HIPBLAS_STATUS_NOT_SUPPORTED", CONV_NUMERIC_LITERAL, API_BLAS}}, {"CUBLAS_STATUS_ARCH_MISMATCH", {"HIPBLAS_STATUS_ARCH_MISMATCH", CONV_NUMERIC_LITERAL, API_BLAS}}, + {"CUBLAS_STATUS_LICENSE_ERROR", {"HIPBLAS_STATUS_LICENSE_ERROR", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // Blas Fill Modes {"cublasFillMode_t", {"hipblasFillMode_t", CONV_TYPE, API_BLAS}}, @@ -2154,6 +2145,12 @@ const std::map CUDA_IDENTIFIER_MAP{ {"CUBLAS_GEMM_ALGO15", {"HIPBLAS_GEMM_ALGO15", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 15 {"CUBLAS_GEMM_ALGO16", {"HIPBLAS_GEMM_ALGO16", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 16 {"CUBLAS_GEMM_ALGO17", {"HIPBLAS_GEMM_ALGO17", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 17 + {"CUBLAS_GEMM_ALGO18", {"HIPBLAS_GEMM_ALGO18", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 18 + {"CUBLAS_GEMM_ALGO19", {"HIPBLAS_GEMM_ALGO19", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 19 + {"CUBLAS_GEMM_ALGO20", {"HIPBLAS_GEMM_ALGO20", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 20 + {"CUBLAS_GEMM_ALGO21", {"HIPBLAS_GEMM_ALGO21", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 21 + {"CUBLAS_GEMM_ALGO22", {"HIPBLAS_GEMM_ALGO22", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 22 + {"CUBLAS_GEMM_ALGO23", {"HIPBLAS_GEMM_ALGO23", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 23 {"CUBLAS_GEMM_DEFAULT_TENSOR_OP", {"HIPBLAS_GEMM_DEFAULT_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 99 {"CUBLAS_GEMM_DFALT_TENSOR_OP", {"HIPBLAS_GEMM_DFALT_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 99 {"CUBLAS_GEMM_ALGO0_TENSOR_OP", {"HIPBLAS_GEMM_ALGO0_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 100 @@ -2161,647 +2158,675 @@ const std::map CUDA_IDENTIFIER_MAP{ {"CUBLAS_GEMM_ALGO2_TENSOR_OP", {"HIPBLAS_GEMM_ALGO2_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 102 {"CUBLAS_GEMM_ALGO3_TENSOR_OP", {"HIPBLAS_GEMM_ALGO3_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 103 {"CUBLAS_GEMM_ALGO4_TENSOR_OP", {"HIPBLAS_GEMM_ALGO4_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 104 + {"CUBLAS_GEMM_ALGO5_TENSOR_OP", {"HIPBLAS_GEMM_ALGO5_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 105 + {"CUBLAS_GEMM_ALGO6_TENSOR_OP", {"HIPBLAS_GEMM_ALGO6_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 106 + {"CUBLAS_GEMM_ALGO7_TENSOR_OP", {"HIPBLAS_GEMM_ALGO7_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 107 + {"CUBLAS_GEMM_ALGO8_TENSOR_OP", {"HIPBLAS_GEMM_ALGO8_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 108 + {"CUBLAS_GEMM_ALGO9_TENSOR_OP", {"HIPBLAS_GEMM_ALGO9_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 109 + {"CUBLAS_GEMM_ALGO10_TENSOR_OP", {"HIPBLAS_GEMM_ALGO10_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 110 + {"CUBLAS_GEMM_ALGO11_TENSOR_OP", {"HIPBLAS_GEMM_ALGO11_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 111 + {"CUBLAS_GEMM_ALGO12_TENSOR_OP", {"HIPBLAS_GEMM_ALGO12_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 112 + {"CUBLAS_GEMM_ALGO13_TENSOR_OP", {"HIPBLAS_GEMM_ALGO13_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 113 + {"CUBLAS_GEMM_ALGO14_TENSOR_OP", {"HIPBLAS_GEMM_ALGO14_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 114 + {"CUBLAS_GEMM_ALGO15_TENSOR_OP", {"HIPBLAS_GEMM_ALGO15_TENSOR_OP", CONV_NUMERIC_LITERAL, API_BLAS, HIP_UNSUPPORTED}}, // 115 + + ///////////////////////////// cuBLAS functions ///////////////////////////// + // Blas management functions + {"cublasInit", {"hipblasInit", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasShutdown", {"hipblasShutdown", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetVersion", {"hipblasGetVersion", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetError", {"hipblasGetError", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasAlloc", {"hipblasAlloc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasFree", {"hipblasFree", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetKernelStream", {"hipblasSetKernelStream", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetAtomicsMode", {"hipblasGetAtomicsMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetAtomicsMode", {"hipblasSetAtomicsMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetMathMode", {"hipblasGetMathMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetMathMode", {"hipblasSetMathMode", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + + // Blas logging + {"cublasLogCallback", {"hipblasLogCallback", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasLoggerConfigure", {"hipblasLoggerConfigure", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetLoggerCallback", {"hipblasSetLoggerCallback", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetLoggerCallback", {"hipblasGetLoggerCallback", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Blas1 (v1) Routines - {"cublasCreate", {"hipblasCreate", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDestroy", {"hipblasDestroy", CONV_MATH_FUNC, API_BLAS}}, - - {"cublasSetVector", {"hipblasSetVector", CONV_MATH_FUNC, API_BLAS}}, - {"cublasGetVector", {"hipblasGetVector", CONV_MATH_FUNC, API_BLAS}}, - {"cublasSetVectorAsync", {"hipblasSetVectorAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGetVectorAsync", {"hipblasGetVectorAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasSetMatrix", {"hipblasSetMatrix", CONV_MATH_FUNC, API_BLAS}}, - {"cublasGetMatrix", {"hipblasGetMatrix", CONV_MATH_FUNC, API_BLAS}}, - {"cublasGetMatrixAsync", {"hipblasGetMatrixAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSetMatrixAsync", {"hipblasSetMatrixAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasXerbla", {"hipblasXerbla", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCreate", {"hipblasCreate", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDestroy", {"hipblasDestroy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSetStream", {"hipblasSetStream", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetStream", {"hipblasGetStream", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetPointerMode", {"hipblasGetPointerMode", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSetPointerMode", {"hipblasSetPointerMode", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSetVector", {"hipblasSetVector", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetVector", {"hipblasGetVector", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSetVectorAsync", {"hipblasSetVectorAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetVectorAsync", {"hipblasGetVectorAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetMatrix", {"hipblasSetMatrix", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetMatrix", {"hipblasGetMatrix", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetMatrixAsync", {"hipblasGetMatrixAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetMatrixAsync", {"hipblasSetMatrixAsync", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasXerbla", {"hipblasXerbla", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // NRM2 - {"cublasSnrm2", {"hipblasSnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDnrm2", {"hipblasDnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasScnrm2", {"hipblasScnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDznrm2", {"hipblasDznrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasNrm2Ex", {"hipblasNrm2Ex", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSnrm2", {"hipblasSnrm2", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDnrm2", {"hipblasDnrm2", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScnrm2", {"hipblasScnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDznrm2", {"hipblasDznrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasNrm2Ex", {"hipblasNrm2Ex", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // DOT - {"cublasSdot", {"hipblasSdot", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSdot", {"hipblasSdot", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasSdotBatched", {"hipblasSdotBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDdot", {"hipblasDdot", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSdotBatched", {"hipblasSdotBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDdot", {"hipblasDdot", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasDdotBatched", {"hipblasDdotBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCdotu", {"hipblasCdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCdotc", {"hipblasCdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdotu", {"hipblasZdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdotc", {"hipblasZdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDdotBatched", {"hipblasDdotBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCdotu", {"hipblasCdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCdotc", {"hipblasCdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdotu", {"hipblasZdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdotc", {"hipblasZdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SCAL - {"cublasSscal", {"hipblasSscal", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSscal", {"hipblasSscal", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasSscalBatched", {"hipblasSscalBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDscal", {"hipblasDscal", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSscalBatched", {"hipblasSscalBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDscal", {"hipblasDscal", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasDscalBatched", {"hipblasDscalBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCscal", {"hipblasCscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsscal", {"hipblasCsscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZscal", {"hipblasZscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdscal", {"hipblasZdscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDscalBatched", {"hipblasDscalBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCscal", {"hipblasCscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsscal", {"hipblasCsscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZscal", {"hipblasZscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdscal", {"hipblasZdscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AXPY - {"cublasSaxpy", {"hipblasSaxpy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasSaxpyBatched", {"hipblasSaxpyBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDaxpy", {"hipblasDaxpy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCaxpy", {"hipblasCaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZaxpy", {"hipblasZaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSaxpy", {"hipblasSaxpy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSaxpyBatched", {"hipblasSaxpyBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDaxpy", {"hipblasDaxpy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCaxpy", {"hipblasCaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZaxpy", {"hipblasZaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // COPY - {"cublasScopy", {"hipblasScopy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScopy", {"hipblasScopy", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasScopyBatched", {"hipblasScopyBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDcopy", {"hipblasDcopy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScopyBatched", {"hipblasScopyBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDcopy", {"hipblasDcopy", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasDcopyBatched", {"hipblasDcopyBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCcopy", {"hipblasCcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZcopy", {"hipblasZcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDcopyBatched", {"hipblasDcopyBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCcopy", {"hipblasCcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZcopy", {"hipblasZcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SWAP - {"cublasSswap", {"hipblasSswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDswap", {"hipblasDswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCswap", {"hipblasCswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZswap", {"hipblasZswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSswap", {"hipblasSswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDswap", {"hipblasDswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCswap", {"hipblasCswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZswap", {"hipblasZswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AMAX - {"cublasIsamax", {"hipblasIsamax", CONV_MATH_FUNC, API_BLAS}}, - {"cublasIdamax", {"hipblasIdamax", CONV_MATH_FUNC, API_BLAS}}, - {"cublasIcamax", {"hipblasIcamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIzamax", {"hipblasIzamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIsamax", {"hipblasIsamax", CONV_MATH_FUNC, API_BLAS}}, + {"cublasIdamax", {"hipblasIdamax", CONV_MATH_FUNC, API_BLAS}}, + {"cublasIcamax", {"hipblasIcamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIzamax", {"hipblasIzamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AMIN - {"cublasIsamin", {"hipblasIsamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIdamin", {"hipblasIdamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIcamin", {"hipblasIcamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIzamin", {"hipblasIzamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIsamin", {"hipblasIsamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIdamin", {"hipblasIdamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIcamin", {"hipblasIcamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIzamin", {"hipblasIzamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ASUM - {"cublasSasum", {"hipblasSasum", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSasum", {"hipblasSasum", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasSasumBatched", {"hipblasSasumBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDasum", {"hipblasDasum", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSasumBatched", {"hipblasSasumBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDasum", {"hipblasDasum", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasDasumBatched", {"hipblasDasumBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasScasum", {"hipblasScasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDzasum", {"hipblasDzasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDasumBatched", {"hipblasDasumBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScasum", {"hipblasScasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDzasum", {"hipblasDzasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROT - {"cublasSrot", {"hipblasSrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrot", {"hipblasDrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCrot", {"hipblasCrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsrot", {"hipblasCsrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZrot", {"hipblasZrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdrot", {"hipblasZdrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrot", {"hipblasSrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrot", {"hipblasDrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCrot", {"hipblasCrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsrot", {"hipblasCsrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZrot", {"hipblasZrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdrot", {"hipblasZdrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTG - {"cublasSrotg", {"hipblasSrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotg", {"hipblasDrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCrotg", {"hipblasCrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZrotg", {"hipblasZrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotg", {"hipblasSrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotg", {"hipblasDrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCrotg", {"hipblasCrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZrotg", {"hipblasZrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTM - {"cublasSrotm", {"hipblasSrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotm", {"hipblasDrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotm", {"hipblasSrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotm", {"hipblasDrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTMG - {"cublasSrotmg", {"hipblasSrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotmg", {"hipblasDrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotmg", {"hipblasSrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotmg", {"hipblasDrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GEMV - {"cublasSgemv", {"hipblasSgemv", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSgemv", {"hipblasSgemv", CONV_MATH_FUNC, API_BLAS}}, // there is no such a function in CUDA - {"cublasSgemvBatched", {"hipblasSgemvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgemv", {"hipblasDgemv", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCgemv", {"hipblasCgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgemv", {"hipblasZgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemvBatched", {"hipblasSgemvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgemv", {"hipblasDgemv", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgemv", {"hipblasCgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemv", {"hipblasZgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GBMV - {"cublasSgbmv", {"hipblasSgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgbmv", {"hipblasDgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgbmv", {"hipblasCgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgbmv", {"hipblasZgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgbmv", {"hipblasSgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgbmv", {"hipblasDgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgbmv", {"hipblasCgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgbmv", {"hipblasZgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRMV - {"cublasStrmv", {"hipblasStrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrmv", {"hipblasDtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrmv", {"hipblasCtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrmv", {"hipblasZtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrmv", {"hipblasStrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrmv", {"hipblasDtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrmv", {"hipblasCtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrmv", {"hipblasZtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TBMV - {"cublasStbmv", {"hipblasStbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtbmv", {"hipblasDtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtbmv", {"hipblasCtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtbmv", {"hipblasZtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStbmv", {"hipblasStbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtbmv", {"hipblasDtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtbmv", {"hipblasCtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtbmv", {"hipblasZtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TPMV - {"cublasStpmv", {"hipblasStpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtpmv", {"hipblasDtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtpmv", {"hipblasCtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtpmv", {"hipblasZtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStpmv", {"hipblasStpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtpmv", {"hipblasDtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtpmv", {"hipblasCtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtpmv", {"hipblasZtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSV - {"cublasStrsv", {"hipblasStrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrsv", {"hipblasDtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrsv", {"hipblasCtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsv", {"hipblasZtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsv", {"hipblasStrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrsv", {"hipblasDtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrsv", {"hipblasCtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsv", {"hipblasZtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TPSV - {"cublasStpsv", {"hipblasStpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtpsv", {"hipblasDtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtpsv", {"hipblasCtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtpsv", {"hipblasZtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStpsv", {"hipblasStpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtpsv", {"hipblasDtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtpsv", {"hipblasCtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtpsv", {"hipblasZtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TBSV - {"cublasStbsv", {"hipblasStbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtbsv", {"hipblasDtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtbsv", {"hipblasCtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtbsv", {"hipblasZtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStbsv", {"hipblasStbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtbsv", {"hipblasDtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtbsv", {"hipblasCtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtbsv", {"hipblasZtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYMV/HEMV - {"cublasSsymv", {"hipblasSsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsymv", {"hipblasDsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsymv", {"hipblasCsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsymv", {"hipblasZsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChemv", {"hipblasChemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhemv", {"hipblasZhemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsymv", {"hipblasSsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsymv", {"hipblasDsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsymv", {"hipblasCsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsymv", {"hipblasZsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChemv", {"hipblasChemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhemv", {"hipblasZhemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SBMV/HBMV - {"cublasSsbmv", {"hipblasSsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsbmv", {"hpiblasDsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChbmv", {"hipblasChbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhbmv", {"hipblasZhbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsbmv", {"hipblasSsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsbmv", {"hpiblasDsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChbmv", {"hipblasChbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhbmv", {"hipblasZhbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPMV/HPMV - {"cublasSspmv", {"hipblasSspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspmv", {"hipblasDspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpmv", {"hipblasChpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpmv", {"hipblasZhpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspmv", {"hipblasSspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspmv", {"hipblasDspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpmv", {"hipblasChpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpmv", {"hipblasZhpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GER - {"cublasSger", {"hipblasSger", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDger", {"hipblasDger", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCgeru", {"hipblasCgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgerc", {"hipblasCgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgeru", {"hipblasZgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgerc", {"hipblasZgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSger", {"hipblasSger", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDger", {"hipblasDger", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgeru", {"hipblasCgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgerc", {"hipblasCgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgeru", {"hipblasZgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgerc", {"hipblasZgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR/HER - {"cublasSsyr", {"hipblasSsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr", {"hipblasDsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCher", {"hipblasCher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher", {"hipblasZher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr", {"hipblasSsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr", {"hipblasDsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr", {"hipblasCsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr", {"hipblasZsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher", {"hipblasCher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher", {"hipblasZher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPR/HPR - {"cublasSspr", {"hipblasSspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspr", {"hipblasDspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpr", {"hipblasChpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpr", {"hipblasZhpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspr", {"hipblasSspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspr", {"hipblasDspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpr", {"hipblasChpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpr", {"hipblasZhpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR2/HER2 - {"cublasSsyr2", {"hipblasSsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr2", {"hipblasDsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCher2", {"hipblasCher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher2", {"hipblasZher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr2", {"hipblasSsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr2", {"hipblasDsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr2", {"hipblasCsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr2", {"hipblasZsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher2", {"hipblasCher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher2", {"hipblasZher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPR2/HPR2 - {"cublasSspr2", {"hipblasSspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspr2", {"hipblasDspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpr2", {"hipblasChpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpr2", {"hipblasZhpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspr2", {"hipblasSspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspr2", {"hipblasDspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpr2", {"hipblasChpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpr2", {"hipblasZhpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Blas3 (v1) Routines // GEMM - {"cublasSgemm", {"hipblasSgemm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDgemm", {"hipblasDgemm", CONV_MATH_FUNC, API_BLAS}}, - - {"cublasCgemm", {"hipblasCgemm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasZgemm", {"hipblasZgemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasHgemm", {"hipblasHgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSgemm", {"hipblasSgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDgemm", {"hipblasDgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgemm", {"hipblasCgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasZgemm", {"hipblasZgemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasHgemm", {"hipblasHgemm", CONV_MATH_FUNC, API_BLAS}}, // BATCH GEMM - {"cublasSgemmBatched", {"hipblasSgemmBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDgemmBatched", {"hipblasDgemmBatched", CONV_MATH_FUNC, API_BLAS}}, - {"cublasHgemmBatched", {"hipblasHgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasSgemmStridedBatched", {"hipblasSgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgemmStridedBatched", {"hipblasDgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasCgemmBatched", {"hipblasCgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgemm3mBatched", {"hipblasCgemm3mBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgemmBatched", {"hipblasZgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasCgemmStridedBatched", {"hipblasCgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgemm3mStridedBatched", {"hipblasCgemm3mStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgemmStridedBatched", {"hipblasZgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasHgemmStridedBatched", {"hipblasHgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemmBatched", {"hipblasSgemmBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDgemmBatched", {"hipblasDgemmBatched", CONV_MATH_FUNC, API_BLAS}}, + {"cublasHgemmBatched", {"hipblasHgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemmStridedBatched", {"hipblasSgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgemmStridedBatched", {"hipblasDgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemmBatched", {"hipblasCgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemm3mBatched", {"hipblasCgemm3mBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemmBatched", {"hipblasZgemmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemmStridedBatched", {"hipblasCgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemm3mStridedBatched", {"hipblasCgemm3mStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemmStridedBatched", {"hipblasZgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasHgemmStridedBatched", {"hipblasHgemmStridedBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYRK - {"cublasSsyrk", {"hipblasSsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyrk", {"hipblasDsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyrk", {"hipblasCsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyrk", {"hipblasZsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyrk", {"hipblasSsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyrk", {"hipblasDsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyrk", {"hipblasCsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyrk", {"hipblasZsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HERK - {"cublasCherk", {"hipblasCherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZherk", {"hipblasZherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCherk", {"hipblasCherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZherk", {"hipblasZherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR2K - {"cublasSsyr2k", {"hipblasSsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr2k", {"hipblasDsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyr2k", {"hipblasCsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyr2k", {"hipblasZsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr2k", {"hipblasSsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr2k", {"hipblasDsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr2k", {"hipblasCsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr2k", {"hipblasZsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYRKX - eXtended SYRK - {"cublasSsyrkx", {"hipblasSsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyrkx", {"hipblasDsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyrkx", {"hipblasCsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyrkx", {"hipblasZsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyrkx", {"hipblasSsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyrkx", {"hipblasDsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyrkx", {"hipblasCsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyrkx", {"hipblasZsyrkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HER2K - {"cublasCher2k", {"hipblasCher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher2k", {"hipblasZher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher2k", {"hipblasCher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher2k", {"hipblasZher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HERKX - eXtended HERK - {"cublasCherkx", {"hipblasCherkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZherkx", {"hipblasZherkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCherkx", {"hipblasCherkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZherkx", {"hipblasZherkx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYMM - {"cublasSsymm", {"hipblasSsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsymm", {"hipblasDsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsymm", {"hipblasCsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsymm", {"hipblasZsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsymm", {"hipblasSsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsymm", {"hipblasDsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsymm", {"hipblasCsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsymm", {"hipblasZsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HEMM - {"cublasChemm", {"hipblasChemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhemm", {"hipblasZhemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChemm", {"hipblasChemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhemm", {"hipblasZhemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSM - {"cublasStrsm", {"hipblasStrsm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDtrsm", {"hipblasDtrsm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCtrsm", {"hipblasCtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsm", {"hipblasZtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsm", {"hipblasStrsm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDtrsm", {"hipblasDtrsm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCtrsm", {"hipblasCtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsm", {"hipblasZtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSM - Batched Triangular Solver - {"cublasStrsmBatched", {"hipblasStrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrsmBatched", {"hipblasDtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrsmBatched", {"hipblasCtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsmBatched", {"hipblasZtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsmBatched", {"hipblasStrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrsmBatched", {"hipblasDtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrsmBatched", {"hipblasCtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsmBatched", {"hipblasZtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRMM - {"cublasStrmm", {"hipblasStrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrmm", {"hipblasDtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrmm", {"hipblasCtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrmm", {"hipblasZtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrmm", {"hipblasStrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrmm", {"hipblasDtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrmm", {"hipblasCtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrmm", {"hipblasZtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ------------------------ CUBLAS BLAS - like extension (cublas_api.h) // GEAM - {"cublasSgeam", {"hipblasSgeam", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDgeam", {"hipblasDgeam", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCgeam", {"hipblasCgeam", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgeam", {"hipblasZgeam", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgeam", {"hipblasSgeam", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDgeam", {"hipblasDgeam", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgeam", {"hipblasCgeam", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgeam", {"hipblasZgeam", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GETRF - Batched LU - {"cublasSgetrfBatched", {"hipblasSgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgetrfBatched", {"hipblasDgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgetrfBatched", {"hipblasCgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgetrfBatched", {"hipblasZgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgetrfBatched", {"hipblasSgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgetrfBatched", {"hipblasDgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgetrfBatched", {"hipblasCgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgetrfBatched", {"hipblasZgetrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Batched inversion based on LU factorization from getrf - {"cublasSgetriBatched", {"hipblasSgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgetriBatched", {"hipblasDgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgetriBatched", {"hipblasCgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgetriBatched", {"hipblasZgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgetriBatched", {"hipblasSgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgetriBatched", {"hipblasDgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgetriBatched", {"hipblasCgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgetriBatched", {"hipblasZgetriBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Batched solver based on LU factorization from getrf - {"cublasSgetrsBatched", {"hipblasSgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgetrsBatched", {"hipblasDgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgetrsBatched", {"hipblasCgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgetrsBatched", {"hipblasZgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgetrsBatched", {"hipblasSgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgetrsBatched", {"hipblasDgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgetrsBatched", {"hipblasCgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgetrsBatched", {"hipblasZgetrsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSM - Batched Triangular Solver - {"cublasStrsmBatched", {"hipblasStrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrsmBatched", {"hipblasDtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrsmBatched", {"hipblasCtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsmBatched", {"hipblasZtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsmBatched", {"hipblasStrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrsmBatched", {"hipblasDtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrsmBatched", {"hipblasCtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsmBatched", {"hipblasZtrsmBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // MATINV - Batched - {"cublasSmatinvBatched", {"hipblasSmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDmatinvBatched", {"hipblasDmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCmatinvBatched", {"hipblasCmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZmatinvBatched", {"hipblasZmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSmatinvBatched", {"hipblasSmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDmatinvBatched", {"hipblasDmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCmatinvBatched", {"hipblasCmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZmatinvBatched", {"hipblasZmatinvBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Batch QR Factorization - {"cublasSgeqrfBatched", {"hipblasSgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgeqrfBatched", {"hipblasDgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgeqrfBatched", {"hipblasCgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgeqrfBatched", {"hipblasZgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgeqrfBatched", {"hipblasSgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgeqrfBatched", {"hipblasDgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgeqrfBatched", {"hipblasCgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgeqrfBatched", {"hipblasZgeqrfBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Least Square Min only m >= n and Non-transpose supported - {"cublasSgelsBatched", {"hipblasSgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgelsBatched", {"hipblasDgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgelsBatched", {"hipblasCgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgelsBatched", {"hipblasZgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgelsBatched", {"hipblasSgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgelsBatched", {"hipblasDgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgelsBatched", {"hipblasCgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgelsBatched", {"hipblasZgelsBatched", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // DGMM - {"cublasSdgmm", {"hipblasSdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDdgmm", {"hipblasDdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCdgmm", {"hipblasCdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdgmm", {"hipblasZdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSdgmm", {"hipblasSdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDdgmm", {"hipblasDdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCdgmm", {"hipblasCdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdgmm", {"hipblasZdgmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TPTTR - Triangular Pack format to Triangular format - {"cublasStpttr", {"hipblasStpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtpttr", {"hipblasDtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtpttr", {"hipblasCtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtpttr", {"hipblasZtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStpttr", {"hipblasStpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtpttr", {"hipblasDtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtpttr", {"hipblasCtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtpttr", {"hipblasZtpttr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRTTP - Triangular format to Triangular Pack format - {"cublasStrttp", {"hipblasStrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrttp", {"hipblasDtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrttp", {"hipblasCtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrttp", {"hipblasZtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrttp", {"hipblasStrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrttp", {"hipblasDtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrttp", {"hipblasCtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrttp", {"hipblasZtrttp", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Blas2 (v2) Routines - {"cublasCreate_v2", {"hipblasCreate", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDestroy_v2", {"hipblasDestroy", CONV_MATH_FUNC, API_BLAS}}, - - {"cublasGetVersion_v2", {"hipblasGetVersion", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSetStream_v2", {"hipblasSetStream", CONV_MATH_FUNC, API_BLAS}}, - {"cublasGetStream_v2", {"hipblasGetStream", CONV_MATH_FUNC, API_BLAS}}, - {"cublasGetPointerMode_v2", {"hipblasGetPointerMode", CONV_MATH_FUNC, API_BLAS}}, - {"cublasSetPointerMode_v2", {"hipblasSetPointerMode", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCreate_v2", {"hipblasCreate", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDestroy_v2", {"hipblasDestroy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetVersion_v2", {"hipblasGetVersion", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGetProperty", {"hipblasGetProperty", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSetStream_v2", {"hipblasSetStream", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetStream_v2", {"hipblasGetStream", CONV_MATH_FUNC, API_BLAS}}, + {"cublasGetPointerMode_v2", {"hipblasGetPointerMode", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSetPointerMode_v2", {"hipblasSetPointerMode", CONV_MATH_FUNC, API_BLAS}}, // GEMV - {"cublasSgemv_v2", {"hipblasSgemv", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDgemv_v2", {"hipblasDgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgemv_v2", {"hipblasCgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgemv_v2", {"hipblasZgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemv_v2", {"hipblasSgemv", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDgemv_v2", {"hipblasDgemv", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgemv_v2", {"hipblasCgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemv_v2", {"hipblasZgemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GBMV - {"cublasSgbmv_v2", {"hipblasSgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDgbmv_v2", {"hipblasDgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgbmv_v2", {"hipblasCgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgbmv_v2", {"hipblasZgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgbmv_v2", {"hipblasSgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDgbmv_v2", {"hipblasDgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgbmv_v2", {"hipblasCgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgbmv_v2", {"hipblasZgbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRMV - {"cublasStrmv_v2", {"hipblasStrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrmv_v2", {"hipblasDtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrmv_v2", {"hipblasCtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrmv_v2", {"hipblasZtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrmv_v2", {"hipblasStrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrmv_v2", {"hipblasDtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrmv_v2", {"hipblasCtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrmv_v2", {"hipblasZtrmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TBMV - {"cublasStbmv_v2", {"hipblasStbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtbmv_v2", {"hipblasDtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtbmv_v2", {"hipblasCtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtbmv_v2", {"hipblasZtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStbmv_v2", {"hipblasStbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtbmv_v2", {"hipblasDtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtbmv_v2", {"hipblasCtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtbmv_v2", {"hipblasZtbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TPMV - {"cublasStpmv_v2", {"hipblasStpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtpmv_v2", {"hipblasDtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtpmv_v2", {"hipblasCtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtpmv_v2", {"hipblasZtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStpmv_v2", {"hipblasStpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtpmv_v2", {"hipblasDtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtpmv_v2", {"hipblasCtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtpmv_v2", {"hipblasZtpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSV - {"cublasStrsv_v2", {"hipblasStrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrsv_v2", {"hipblasDtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrsv_v2", {"hipblasCtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsv_v2", {"hipblasZtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsv_v2", {"hipblasStrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrsv_v2", {"hipblasDtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrsv_v2", {"hipblasCtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsv_v2", {"hipblasZtrsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TPSV - {"cublasStpsv_v2", {"hipblasStpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtpsv_v2", {"hipblasDtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtpsv_v2", {"hipblasCtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtpsv_v2", {"hipblasZtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStpsv_v2", {"hipblasStpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtpsv_v2", {"hipblasDtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtpsv_v2", {"hipblasCtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtpsv_v2", {"hipblasZtpsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TBSV - {"cublasStbsv_v2", {"hipblasStbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtbsv_v2", {"hipblasDtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtbsv_v2", {"hipblasCtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtbsv_v2", {"hipblasZtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStbsv_v2", {"hipblasStbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtbsv_v2", {"hipblasDtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtbsv_v2", {"hipblasCtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtbsv_v2", {"hipblasZtbsv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYMV/HEMV - {"cublasSsymv_v2", {"hipblasSsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsymv_v2", {"hipblasDsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsymv_v2", {"hipblasCsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsymv_v2", {"hipblasZsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChemv_v2", {"hipblasChemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhemv_v2", {"hipblasZhemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsymv_v2", {"hipblasSsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsymv_v2", {"hipblasDsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsymv_v2", {"hipblasCsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsymv_v2", {"hipblasZsymv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChemv_v2", {"hipblasChemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhemv_v2", {"hipblasZhemv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SBMV/HBMV - {"cublasSsbmv_v2", {"hipblasSsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsbmv_v2", {"hpiblasDsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChbmv_v2", {"hipblasChbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhbmv_v2", {"hipblasZhbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsbmv_v2", {"hipblasSsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsbmv_v2", {"hpiblasDsbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChbmv_v2", {"hipblasChbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhbmv_v2", {"hipblasZhbmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPMV/HPMV - {"cublasSspmv_v2", {"hipblasSspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspmv_v2", {"hipblasDspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpmv_v2", {"hipblasChpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpmv_v2", {"hipblasZhpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspmv_v2", {"hipblasSspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspmv_v2", {"hipblasDspmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpmv_v2", {"hipblasChpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpmv_v2", {"hipblasZhpmv", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // GER - {"cublasSger_v2", {"hipblasSger", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDger_v2", {"hipblasDger", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCgeru_v2", {"hipblasCgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgerc_v2", {"hipblasCgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgeru_v2", {"hipblasZgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgerc_v2", {"hipblasZgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSger_v2", {"hipblasSger", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDger_v2", {"hipblasDger", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgeru_v2", {"hipblasCgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgerc_v2", {"hipblasCgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgeru_v2", {"hipblasZgeru", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgerc_v2", {"hipblasZgerc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR/HER - {"cublasSsyr_v2", {"hipblasSsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr_v2", {"hipblasDsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyr_v2", {"hipblasCsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyr_v2", {"hipblasZsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCher_v2", {"hipblasCher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher_v2", {"hipblasZher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr_v2", {"hipblasSsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr_v2", {"hipblasDsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr_v2", {"hipblasCsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr_v2", {"hipblasZsyr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher_v2", {"hipblasCher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher_v2", {"hipblasZher", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPR/HPR - {"cublasSspr_v2", {"hipblasSspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspr_v2", {"hipblasDspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpr_v2", {"hipblasChpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpr_v2", {"hipblasZhpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspr_v2", {"hipblasSspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspr_v2", {"hipblasDspr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpr_v2", {"hipblasChpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpr_v2", {"hipblasZhpr", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR2/HER2 - {"cublasSsyr2_v2", {"hipblasSsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr2_v2", {"hipblasDsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyr2_v2", {"hipblasCsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyr2_v2", {"hipblasZsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCher2_v2", {"hipblasCher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher2_v2", {"hipblasZher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr2_v2", {"hipblasSsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr2_v2", {"hipblasDsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr2_v2", {"hipblasCsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr2_v2", {"hipblasZsyr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher2_v2", {"hipblasCher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher2_v2", {"hipblasZher2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SPR2/HPR2 - {"cublasSspr2_v2", {"hipblasSspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDspr2_v2", {"hipblasDspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasChpr2_v2", {"hipblasChpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhpr2_v2", {"hipblasZhpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSspr2_v2", {"hipblasSspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDspr2_v2", {"hipblasDspr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChpr2_v2", {"hipblasChpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhpr2_v2", {"hipblasZhpr2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // Blas3 (v2) Routines // GEMM - {"cublasSgemm_v2", {"hipblasSgemm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDgemm_v2", {"hipblasDgemm", CONV_MATH_FUNC, API_BLAS}}, - - {"cublasCgemm_v2", {"hipblasCgemm", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCgemm3m", {"hipblasCgemm3m", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCgemm3mEx", {"hipblasCgemm3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasZgemm_v2", {"hipblasZgemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZgemm3m", {"hipblasZgemm3m", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemm_v2", {"hipblasSgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDgemm_v2", {"hipblasDgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgemm_v2", {"hipblasCgemm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCgemm3m", {"hipblasCgemm3m", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemm3mEx", {"hipblasCgemm3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemm_v2", {"hipblasZgemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZgemm3m", {"hipblasZgemm3m", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, //IO in FP16 / FP32, computation in float - {"cublasSgemmEx", {"hipblasSgemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGemmEx", {"hipblasGemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGemmBatchedEx", {"hipblasGemmBatchedEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasGemmStridedBatchedEx", {"hipblasGemmStridedBatchedEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSgemmEx", {"hipblasSgemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGemmEx", {"hipblasGemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGemmBatchedEx", {"hipblasGemmBatchedEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasGemmStridedBatchedEx", {"hipblasGemmStridedBatchedEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // IO in Int8 complex/cuComplex, computation in cuComplex - {"cublasCgemmEx", {"hipblasCgemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - - {"cublasUint8gemmBias", {"hipblasUint8gemmBias", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCgemmEx", {"hipblasCgemmEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasUint8gemmBias", {"hipblasUint8gemmBias", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYRK - {"cublasSsyrk_v2", {"hipblasSsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyrk_v2", {"hipblasDsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyrk_v2", {"hipblasCsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyrk_v2", {"hipblasZsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyrk_v2", {"hipblasSsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyrk_v2", {"hipblasDsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyrk_v2", {"hipblasCsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyrk_v2", {"hipblasZsyrk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // IO in Int8 complex/cuComplex, computation in cuComplex - {"cublasCsyrkEx", {"hipblasCsyrkEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyrkEx", {"hipblasCsyrkEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // IO in Int8 complex/cuComplex, computation in cuComplex, Gaussian math - {"cublasCsyrk3mEx", {"hipblasCsyrk3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyrk3mEx", {"hipblasCsyrk3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HERK - {"cublasCherk_v2", {"hipblasCherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCherk_v2", {"hipblasCherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // IO in Int8 complex/cuComplex, computation in cuComplex - {"cublasCherkEx", {"hipblasCherkEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCherkEx", {"hipblasCherkEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // IO in Int8 complex/cuComplex, computation in cuComplex, Gaussian math - {"cublasCherk3mEx", {"hipblasCherk3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZherk_v2", {"hipblasZherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCherk3mEx", {"hipblasCherk3mEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZherk_v2", {"hipblasZherk", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYR2K - {"cublasSsyr2k_v2", {"hipblasSsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsyr2k_v2", {"hipblasDsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsyr2k_v2", {"hipblasCsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsyr2k_v2", {"hipblasZsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsyr2k_v2", {"hipblasSsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsyr2k_v2", {"hipblasDsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsyr2k_v2", {"hipblasCsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsyr2k_v2", {"hipblasZsyr2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HER2K - {"cublasCher2k_v2", {"hipblasCher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZher2k_v2", {"hipblasZher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCher2k_v2", {"hipblasCher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZher2k_v2", {"hipblasZher2k", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SYMM - {"cublasSsymm_v2", {"hipblasSsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDsymm_v2", {"hipblasDsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsymm_v2", {"hipblasCsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZsymm_v2", {"hipblasZsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSsymm_v2", {"hipblasSsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDsymm_v2", {"hipblasDsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsymm_v2", {"hipblasCsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZsymm_v2", {"hipblasZsymm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // HEMM - {"cublasChemm_v2", {"hipblasChemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZhemm_v2", {"hipblasZhemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasChemm_v2", {"hipblasChemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZhemm_v2", {"hipblasZhemm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRSM - {"cublasStrsm_v2", {"hipblasStrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrsm_v2", {"hipblasDtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrsm_v2", {"hipblasCtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrsm_v2", {"hipblasZtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrsm_v2", {"hipblasStrsm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDtrsm_v2", {"hipblasDtrsm", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCtrsm_v2", {"hipblasCtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrsm_v2", {"hipblasZtrsm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // TRMM - {"cublasStrmm_v2", {"hipblasStrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDtrmm_v2", {"hipblasDtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCtrmm_v2", {"hipblasCtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZtrmm_v2", {"hipblasZtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasStrmm_v2", {"hipblasStrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDtrmm_v2", {"hipblasDtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCtrmm_v2", {"hipblasCtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZtrmm_v2", {"hipblasZtrmm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // NRM2 - {"cublasSnrm2_v2", {"hipblasSnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDnrm2_v2", {"hipblasDnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasScnrm2_v2", {"hipblasScnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDznrm2_v2", {"hipblasDznrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSnrm2_v2", {"hipblasSnrm2", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDnrm2_v2", {"hipblasDnrm2", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScnrm2_v2", {"hipblasScnrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDznrm2_v2", {"hipblasDznrm2", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // DOT - {"cublasDotEx", {"hipblasDotEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDotcEx", {"hipblasDotcEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDotEx", {"hipblasDotEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDotcEx", {"hipblasDotcEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSdot_v2", {"hipblasSdot", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDdot_v2", {"hipblasDdot", CONV_MATH_FUNC, API_BLAS}}, + {"cublasSdot_v2", {"hipblasSdot", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDdot_v2", {"hipblasDdot", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCdotu_v2", {"hipblasCdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCdotc_v2", {"hipblasCdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdotu_v2", {"hipblasZdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdotc_v2", {"hipblasZdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCdotu_v2", {"hipblasCdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCdotc_v2", {"hipblasCdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdotu_v2", {"hipblasZdotu", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdotc_v2", {"hipblasZdotc", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SCAL - {"cublasScalEx", {"hipblasScalEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSscal_v2", {"hipblasSscal", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDscal_v2", {"hipblasDscal", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCscal_v2", {"hipblasCscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsscal_v2", {"hipblasCsscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZscal_v2", {"hipblasZscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdscal_v2", {"hipblasZdscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasScalEx", {"hipblasScalEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSscal_v2", {"hipblasSscal", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDscal_v2", {"hipblasDscal", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCscal_v2", {"hipblasCscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsscal_v2", {"hipblasCsscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZscal_v2", {"hipblasZscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdscal_v2", {"hipblasZdscal", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AXPY - {"cublasAxpyEx", {"hipblasAxpyEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasSaxpy_v2", {"hipblasSaxpy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDaxpy_v2", {"hipblasDaxpy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCaxpy_v2", {"hipblasCaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZaxpy_v2", {"hipblasZaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasAxpyEx", {"hipblasAxpyEx", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSaxpy_v2", {"hipblasSaxpy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDaxpy_v2", {"hipblasDaxpy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCaxpy_v2", {"hipblasCaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZaxpy_v2", {"hipblasZaxpy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // COPY - {"cublasScopy_v2", {"hipblasScopy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDcopy_v2", {"hipblasDcopy", CONV_MATH_FUNC, API_BLAS}}, - {"cublasCcopy_v2", {"hipblasCcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZcopy_v2", {"hipblasZcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasScopy_v2", {"hipblasScopy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDcopy_v2", {"hipblasDcopy", CONV_MATH_FUNC, API_BLAS}}, + {"cublasCcopy_v2", {"hipblasCcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZcopy_v2", {"hipblasZcopy", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // SWAP - {"cublasSswap_v2", {"hipblasSswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDswap_v2", {"hipblasDswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCswap_v2", {"hipblasCswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZswap_v2", {"hipblasZswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSswap_v2", {"hipblasSswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDswap_v2", {"hipblasDswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCswap_v2", {"hipblasCswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZswap_v2", {"hipblasZswap", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AMAX - {"cublasIsamax_v2", {"hipblasIsamax", CONV_MATH_FUNC, API_BLAS}}, - {"cublasIdamax_v2", {"hipblasIdamax", CONV_MATH_FUNC, API_BLAS}}, - {"cublasIcamax_v2", {"hipblasIcamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIzamax_v2", {"hipblasIzamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIsamax_v2", {"hipblasIsamax", CONV_MATH_FUNC, API_BLAS}}, + {"cublasIdamax_v2", {"hipblasIdamax", CONV_MATH_FUNC, API_BLAS}}, + {"cublasIcamax_v2", {"hipblasIcamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIzamax_v2", {"hipblasIzamax", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // AMIN - {"cublasIsamin_v2", {"hipblasIsamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIdamin_v2", {"hipblasIdamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIcamin_v2", {"hipblasIcamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasIzamin_v2", {"hipblasIzamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIsamin_v2", {"hipblasIsamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIdamin_v2", {"hipblasIdamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIcamin_v2", {"hipblasIcamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasIzamin_v2", {"hipblasIzamin", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ASUM - {"cublasSasum_v2", {"hipblasSasum", CONV_MATH_FUNC, API_BLAS}}, - {"cublasDasum_v2", {"hipblasDasum", CONV_MATH_FUNC, API_BLAS}}, - {"cublasScasum_v2", {"hipblasScasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDzasum_v2", {"hipblasDzasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSasum_v2", {"hipblasSasum", CONV_MATH_FUNC, API_BLAS}}, + {"cublasDasum_v2", {"hipblasDasum", CONV_MATH_FUNC, API_BLAS}}, + {"cublasScasum_v2", {"hipblasScasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDzasum_v2", {"hipblasDzasum", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROT - {"cublasSrot_v2", {"hipblasSrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrot_v2", {"hipblasDrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCrot_v2", {"hipblasCrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCsrot_v2", {"hipblasCsrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZrot_v2", {"hipblasZrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZdrot_v2", {"hipblasZdrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrot_v2", {"hipblasSrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrot_v2", {"hipblasDrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCrot_v2", {"hipblasCrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCsrot_v2", {"hipblasCsrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZrot_v2", {"hipblasZrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZdrot_v2", {"hipblasZdrot", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTG - {"cublasSrotg_v2", {"hipblasSrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotg_v2", {"hipblasDrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasCrotg_v2", {"hipblasCrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasZrotg_v2", {"hipblasZrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotg_v2", {"hipblasSrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotg_v2", {"hipblasDrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasCrotg_v2", {"hipblasCrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasZrotg_v2", {"hipblasZrotg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTM - {"cublasSrotm_v2", {"hipblasSrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotm_v2", {"hipblasDrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotm_v2", {"hipblasSrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotm_v2", {"hipblasDrotm", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, // ROTMG - {"cublasSrotmg_v2", {"hipblasSrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, - {"cublasDrotmg_v2", {"hipblasDrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasSrotmg_v2", {"hipblasSrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, + {"cublasDrotmg_v2", {"hipblasDrotmg", CONV_MATH_FUNC, API_BLAS, HIP_UNSUPPORTED}}, ///////////////////////////// cuRAND ///////////////////////////// // RAND function call status types (enum curandStatus) diff --git a/projects/hip/tests/hipify-clang/cuBLAS/cublas_0_based_indexing.cu b/projects/hip/tests/hipify-clang/cuBLAS/cublas_0_based_indexing.cu new file mode 100644 index 0000000000..5dcaaaf637 --- /dev/null +++ b/projects/hip/tests/hipify-clang/cuBLAS/cublas_0_based_indexing.cu @@ -0,0 +1,79 @@ +// RUN: %run_test hipify "%s" "%t" %cuda_args + +#include +#include +#include +// CHECK: #include "hipblas.h" +#include "cublas.h" +#define M 6 +#define N 5 +#define IDX2C(i,j,ld) (((j)*(ld))+(i)) +static __inline__ void modify(float *m, int ldm, int n, int p, int q, float + alpha, float beta) { + // CHECK: hipblasSscal(n - p, alpha, &m[IDX2C(p, q, ldm)], ldm); + // CHECK: hipblasSscal(ldm - p, beta, &m[IDX2C(p, q, ldm)], 1); + cublasSscal(n - p, alpha, &m[IDX2C(p, q, ldm)], ldm); + cublasSscal(ldm - p, beta, &m[IDX2C(p, q, ldm)], 1); +} +int main(void) { + int i, j; + // CHECK: hipblasStatus_t stat; + cublasStatus stat; + float* devPtrA; + float* a = 0; + a = (float *)malloc(M * N * sizeof(*a)); + if (!a) { + printf("host memory allocation failed"); + return EXIT_FAILURE; + } + for (j = 0; j < N; j++) { + for (i = 0; i < M; i++) { + a[IDX2C(i, j, M)] = (float)(i * M + j + 1); + } + } + // cublasInit is not supported yet + cublasInit(); + stat = cublasAlloc(M*N, sizeof(*a), (void**)&devPtrA); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("device memory allocation failed"); + // cublasShutdown is not supported yet + cublasShutdown(); + return EXIT_FAILURE; + } + // CHECK: stat = hipblasSetMatrix(M, N, sizeof(*a), a, M, devPtrA, M); + stat = cublasSetMatrix(M, N, sizeof(*a), a, M, devPtrA, M); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("data download failed"); + // cublasFree is not supported yet + cublasFree(devPtrA); + // cublasShutdown is not supported yet + cublasShutdown(); + return EXIT_FAILURE; + } + modify(devPtrA, M, N, 1, 2, 16.0f, 12.0f); + // CHECK: stat = hipblasGetMatrix(M, N, sizeof(*a), devPtrA, M, a, M); + stat = cublasGetMatrix(M, N, sizeof(*a), devPtrA, M, a, M); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("data upload failed"); + // cublasFree is not supported yet + cublasFree(devPtrA); + // cublasShutdown is not supported yet + cublasShutdown(); + return EXIT_FAILURE; + } + // cublasFree is not supported yet + cublasFree(devPtrA); + // cublasShutdown is not supported yet + cublasShutdown(); + for (j = 0; j < N; j++) { + for (i = 0; i < M; i++) { + printf("%7.0f", a[IDX2C(i, j, M)]); + } + printf("\n"); + } + free(a); + return EXIT_SUCCESS; +} diff --git a/projects/hip/tests/hipify-clang/cuBLAS/cublas_1_based_indexing.cu b/projects/hip/tests/hipify-clang/cuBLAS/cublas_1_based_indexing.cu new file mode 100644 index 0000000000..4e3c1cace8 --- /dev/null +++ b/projects/hip/tests/hipify-clang/cuBLAS/cublas_1_based_indexing.cu @@ -0,0 +1,90 @@ +// RUN: %run_test hipify "%s" "%t" %cuda_args + +#include +#include +#include +// CHECK: #include +#include +// CHECK: #include "hipblas.h" +#include "cublas_v2.h" +#define M 6 +#define N 5 +#define IDX2F(i,j,ld) ((((j)-1)*(ld))+((i)-1)) +// CHECK: static __inline__ void modify(hipblasHandle_t handle, float *m, int ldm, int +static __inline__ void modify(cublasHandle_t handle, float *m, int ldm, int + n, int p, int q, float alpha, float beta) { + // CHECK: hipblasSscal(handle, n - p + 1, &alpha, &m[IDX2F(p, q, ldm)], ldm); + // CHECK: hipblasSscal(handle, ldm - p + 1, &beta, &m[IDX2F(p, q, ldm)], 1); + cublasSscal(handle, n - p + 1, &alpha, &m[IDX2F(p, q, ldm)], ldm); + cublasSscal(handle, ldm - p + 1, &beta, &m[IDX2F(p, q, ldm)], 1); +} +int main(void) { + // CHECK: hipError_t cudaStat; + // CHECK: hipblasStatus_t stat; + // CHECK: hipblasHandle_t handle; + cudaError_t cudaStat; + cublasStatus_t stat; + cublasHandle_t handle; + int i, j; + float* devPtrA; + float* a = 0; + a = (float *)malloc(M * N * sizeof(*a)); + if (!a) { + printf("host memory allocation failed"); + return EXIT_FAILURE; + } + for (j = 1; j <= N; j++) { + for (i = 1; i <= M; i++) { + a[IDX2F(i, j, M)] = (float)((i - 1) * M + j); + } + } + // CHECK: cudaStat = hipMalloc((void**)&devPtrA, M*N * sizeof(*a)); + cudaStat = cudaMalloc((void**)&devPtrA, M*N * sizeof(*a)); + // CHECK: if (cudaStat != hipSuccess) { + if (cudaStat != cudaSuccess) { + printf("device memory allocation failed"); + return EXIT_FAILURE; + } + // CHECK: stat = hipblasCreate(&handle); + stat = cublasCreate(&handle); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("CUBLAS initialization failed\n"); + return EXIT_FAILURE; + } + // CHECK: stat = hipblasSetMatrix(M, N, sizeof(*a), a, M, devPtrA, M); + stat = cublasSetMatrix(M, N, sizeof(*a), a, M, devPtrA, M); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("data download failed"); + // CHECK: hipFree(devPtrA); + // CHECK: hipblasDestroy(handle); + cudaFree(devPtrA); + cublasDestroy(handle); + return EXIT_FAILURE; + } + modify(handle, devPtrA, M, N, 2, 3, 16.0f, 12.0f); + // CHECK: stat = hipblasGetMatrix(M, N, sizeof(*a), devPtrA, M, a, M); + stat = cublasGetMatrix(M, N, sizeof(*a), devPtrA, M, a, M); + // CHECK: if (stat != HIPBLAS_STATUS_SUCCESS) { + if (stat != CUBLAS_STATUS_SUCCESS) { + printf("data upload failed"); + // CHECK: hipFree(devPtrA); + // CHECK: hipblasDestroy(handle); + cudaFree(devPtrA); + cublasDestroy(handle); + return EXIT_FAILURE; + } + // CHECK: hipFree(devPtrA); + // CHECK: hipblasDestroy(handle); + cudaFree(devPtrA); + cublasDestroy(handle); + for (j = 1; j <= N; j++) { + for (i = 1; i <= M; i++) { + printf("%7.0f", a[IDX2F(i, j, M)]); + } + printf("\n"); + } + free(a); + return EXIT_SUCCESS; +} diff --git a/projects/hip/tests/hipify-clang/cuBLAS/cublas_sgemm_matrix_multiplication.cu b/projects/hip/tests/hipify-clang/cuBLAS/cublas_sgemm_matrix_multiplication.cu new file mode 100644 index 0000000000..32692440d4 --- /dev/null +++ b/projects/hip/tests/hipify-clang/cuBLAS/cublas_sgemm_matrix_multiplication.cu @@ -0,0 +1,108 @@ +// RUN: %run_test hipify "%s" "%t" %cuda_args + +#include +#include +// CHECK: #include +#include +// CHECK: #include "hipblas.h" +#include "cublas_v2.h" +#define IDX2C(i,j,ld) (((j)*(ld))+(i)) +#define m 6 +#define n 4 +#define k 5 +int main(void) { + // CHECK: hipError_t cudaStat; + // CHECK: hipblasStatus_t stat; + // CHECK: hipblasHandle_t handle; + cudaError_t cudaStat; + cublasStatus_t stat; + cublasHandle_t handle; + int i, j; + float * a; + float * b; + float * c; + a = (float *)malloc(m*k * sizeof(float)); + b = (float *)malloc(k*n * sizeof(float)); + c = (float *)malloc(m*n * sizeof(float)); + int ind = 11; + for (j = 0; j