Files
rocm-systems/hipify-clang/src/CUDA2HIP_BLAS_API_functions.cpp
T

663 خطوط
54 KiB
C++

#include "CUDA2HIP.h"
// Map of all functions
const std::map<llvm::StringRef, hipCounter> CUDA_BLAS_FUNCTION_MAP{
// Blas management functions
{"cublasInit", {"hipblasInit", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasShutdown", {"hipblasShutdown", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetVersion", {"hipblasGetVersion", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetError", {"hipblasGetError", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasAlloc", {"hipblasAlloc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasFree", {"hipblasFree", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetKernelStream", {"hipblasSetKernelStream", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetAtomicsMode", {"hipblasGetAtomicsMode", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetAtomicsMode", {"hipblasSetAtomicsMode", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetMathMode", {"hipblasGetMathMode", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetMathMode", {"hipblasSetMathMode", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Blas logging
{"cublasLogCallback", {"hipblasLogCallback", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasLoggerConfigure", {"hipblasLoggerConfigure", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetLoggerCallback", {"hipblasSetLoggerCallback", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetLoggerCallback", {"hipblasGetLoggerCallback", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Blas1 (v1) Routines
{"cublasCreate", {"hipblasCreate", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDestroy", {"hipblasDestroy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSetStream", {"hipblasSetStream", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetStream", {"hipblasGetStream", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetPointerMode", {"hipblasGetPointerMode", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSetPointerMode", {"hipblasSetPointerMode", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSetVector", {"hipblasSetVector", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetVector", {"hipblasGetVector", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSetVectorAsync", {"hipblasSetVectorAsync", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetVectorAsync", {"hipblasGetVectorAsync", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetMatrix", {"hipblasSetMatrix", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetMatrix", {"hipblasGetMatrix", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetMatrixAsync", {"hipblasGetMatrixAsync", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetMatrixAsync", {"hipblasSetMatrixAsync", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasXerbla", {"hipblasXerbla", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// NRM2
{"cublasSnrm2", {"hipblasSnrm2", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDnrm2", {"hipblasDnrm2", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasScnrm2", {"hipblasScnrm2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDznrm2", {"hipblasDznrm2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasNrm2Ex", {"hipblasNrm2Ex", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// DOT
{"cublasSdot", {"hipblasSdot", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasSdotBatched", {"hipblasSdotBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDdot", {"hipblasDdot", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasDdotBatched", {"hipblasDdotBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCdotu", {"hipblasCdotu", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCdotc", {"hipblasCdotc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdotu", {"hipblasZdotu", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdotc", {"hipblasZdotc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SCAL
{"cublasSscal", {"hipblasSscal", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasSscalBatched", {"hipblasSscalBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDscal", {"hipblasDscal", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasDscalBatched", {"hipblasDscalBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCscal", {"hipblasCscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsscal", {"hipblasCsscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZscal", {"hipblasZscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdscal", {"hipblasZdscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AXPY
{"cublasSaxpy", {"hipblasSaxpy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSaxpyBatched", {"hipblasSaxpyBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDaxpy", {"hipblasDaxpy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCaxpy", {"hipblasCaxpy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZaxpy", {"hipblasZaxpy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// COPY
{"cublasScopy", {"hipblasScopy", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasScopyBatched", {"hipblasScopyBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDcopy", {"hipblasDcopy", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasDcopyBatched", {"hipblasDcopyBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCcopy", {"hipblasCcopy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZcopy", {"hipblasZcopy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SWAP
{"cublasSswap", {"hipblasSswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDswap", {"hipblasDswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCswap", {"hipblasCswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZswap", {"hipblasZswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AMAX
{"cublasIsamax", {"hipblasIsamax", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasIdamax", {"hipblasIdamax", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasIcamax", {"hipblasIcamax", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIzamax", {"hipblasIzamax", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AMIN
{"cublasIsamin", {"hipblasIsamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIdamin", {"hipblasIdamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIcamin", {"hipblasIcamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIzamin", {"hipblasIzamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ASUM
{"cublasSasum", {"hipblasSasum", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasSasumBatched", {"hipblasSasumBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDasum", {"hipblasDasum", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasDasumBatched", {"hipblasDasumBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasScasum", {"hipblasScasum", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDzasum", {"hipblasDzasum", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROT
{"cublasSrot", {"hipblasSrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrot", {"hipblasDrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCrot", {"hipblasCrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsrot", {"hipblasCsrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZrot", {"hipblasZrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdrot", {"hipblasZdrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTG
{"cublasSrotg", {"hipblasSrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotg", {"hipblasDrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCrotg", {"hipblasCrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZrotg", {"hipblasZrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTM
{"cublasSrotm", {"hipblasSrotm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotm", {"hipblasDrotm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTMG
{"cublasSrotmg", {"hipblasSrotmg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotmg", {"hipblasDrotmg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GEMV
{"cublasSgemv", {"hipblasSgemv", "", CONV_LIB_FUNC, API_BLAS}},
// there is no such a function in CUDA
{"cublasSgemvBatched", {"hipblasSgemvBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgemv", {"hipblasDgemv", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgemv", {"hipblasCgemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemv", {"hipblasZgemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GBMV
{"cublasSgbmv", {"hipblasSgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgbmv", {"hipblasDgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgbmv", {"hipblasCgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgbmv", {"hipblasZgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRMV
{"cublasStrmv", {"hipblasStrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrmv", {"hipblasDtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrmv", {"hipblasCtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrmv", {"hipblasZtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TBMV
{"cublasStbmv", {"hipblasStbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtbmv", {"hipblasDtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtbmv", {"hipblasCtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtbmv", {"hipblasZtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TPMV
{"cublasStpmv", {"hipblasStpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtpmv", {"hipblasDtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtpmv", {"hipblasCtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtpmv", {"hipblasZtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSV
{"cublasStrsv", {"hipblasStrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrsv", {"hipblasDtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrsv", {"hipblasCtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsv", {"hipblasZtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TPSV
{"cublasStpsv", {"hipblasStpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtpsv", {"hipblasDtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtpsv", {"hipblasCtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtpsv", {"hipblasZtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TBSV
{"cublasStbsv", {"hipblasStbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtbsv", {"hipblasDtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtbsv", {"hipblasCtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtbsv", {"hipblasZtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYMV/HEMV
{"cublasSsymv", {"hipblasSsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsymv", {"hipblasDsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsymv", {"hipblasCsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsymv", {"hipblasZsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChemv", {"hipblasChemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhemv", {"hipblasZhemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SBMV/HBMV
{"cublasSsbmv", {"hipblasSsbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsbmv", {"hpiblasDsbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChbmv", {"hipblasChbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhbmv", {"hipblasZhbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPMV/HPMV
{"cublasSspmv", {"hipblasSspmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspmv", {"hipblasDspmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpmv", {"hipblasChpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpmv", {"hipblasZhpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GER
{"cublasSger", {"hipblasSger", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDger", {"hipblasDger", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgeru", {"hipblasCgeru", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgerc", {"hipblasCgerc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgeru", {"hipblasZgeru", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgerc", {"hipblasZgerc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR/HER
{"cublasSsyr", {"hipblasSsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr", {"hipblasDsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr", {"hipblasCsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr", {"hipblasZsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCher", {"hipblasCher", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher", {"hipblasZher", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPR/HPR
{"cublasSspr", {"hipblasSspr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspr", {"hipblasDspr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpr", {"hipblasChpr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpr", {"hipblasZhpr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR2/HER2
{"cublasSsyr2", {"hipblasSsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr2", {"hipblasDsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr2", {"hipblasCsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr2", {"hipblasZsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCher2", {"hipblasCher2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher2", {"hipblasZher2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPR2/HPR2
{"cublasSspr2", {"hipblasSspr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspr2", {"hipblasDspr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpr2", {"hipblasChpr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpr2", {"hipblasZhpr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Blas3 (v1) Routines
// GEMM
{"cublasSgemm", {"hipblasSgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDgemm", {"hipblasDgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgemm", {"hipblasCgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasZgemm", {"hipblasZgemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasHgemm", {"hipblasHgemm", "", CONV_LIB_FUNC, API_BLAS}},
// BATCH GEMM
{"cublasSgemmBatched", {"hipblasSgemmBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDgemmBatched", {"hipblasDgemmBatched", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasHgemmBatched", {"hipblasHgemmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSgemmStridedBatched", {"hipblasSgemmStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgemmStridedBatched", {"hipblasDgemmStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgemmBatched", {"hipblasCgemmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgemm3mBatched", {"hipblasCgemm3mBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemmBatched", {"hipblasZgemmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgemmStridedBatched", {"hipblasCgemmStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgemm3mStridedBatched", {"hipblasCgemm3mStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemmStridedBatched", {"hipblasZgemmStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasHgemmStridedBatched", {"hipblasHgemmStridedBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYRK
{"cublasSsyrk", {"hipblasSsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyrk", {"hipblasDsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyrk", {"hipblasCsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyrk", {"hipblasZsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HERK
{"cublasCherk", {"hipblasCherk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZherk", {"hipblasZherk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR2K
{"cublasSsyr2k", {"hipblasSsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr2k", {"hipblasDsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr2k", {"hipblasCsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr2k", {"hipblasZsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYRKX - eXtended SYRK
{"cublasSsyrkx", {"hipblasSsyrkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyrkx", {"hipblasDsyrkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyrkx", {"hipblasCsyrkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyrkx", {"hipblasZsyrkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HER2K
{"cublasCher2k", {"hipblasCher2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher2k", {"hipblasZher2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HERKX - eXtended HERK
{"cublasCherkx", {"hipblasCherkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZherkx", {"hipblasZherkx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYMM
{"cublasSsymm", {"hipblasSsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsymm", {"hipblasDsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsymm", {"hipblasCsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsymm", {"hipblasZsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HEMM
{"cublasChemm", {"hipblasChemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhemm", {"hipblasZhemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSM
{"cublasStrsm", {"hipblasStrsm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDtrsm", {"hipblasDtrsm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCtrsm", {"hipblasCtrsm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsm", {"hipblasZtrsm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSM - Batched Triangular Solver
{"cublasStrsmBatched", {"hipblasStrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrsmBatched", {"hipblasDtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrsmBatched", {"hipblasCtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsmBatched", {"hipblasZtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRMM
{"cublasStrmm", {"hipblasStrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrmm", {"hipblasDtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrmm", {"hipblasCtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrmm", {"hipblasZtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ------------------------ CUBLAS BLAS - like extension (cublas_api.h)
// GEAM
{"cublasSgeam", {"hipblasSgeam", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDgeam", {"hipblasDgeam", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgeam", {"hipblasCgeam", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgeam", {"hipblasZgeam", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GETRF - Batched LU
{"cublasSgetrfBatched", {"hipblasSgetrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgetrfBatched", {"hipblasDgetrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgetrfBatched", {"hipblasCgetrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgetrfBatched", {"hipblasZgetrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Batched inversion based on LU factorization from getrf
{"cublasSgetriBatched", {"hipblasSgetriBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgetriBatched", {"hipblasDgetriBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgetriBatched", {"hipblasCgetriBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgetriBatched", {"hipblasZgetriBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Batched solver based on LU factorization from getrf
{"cublasSgetrsBatched", {"hipblasSgetrsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgetrsBatched", {"hipblasDgetrsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgetrsBatched", {"hipblasCgetrsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgetrsBatched", {"hipblasZgetrsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSM - Batched Triangular Solver
{"cublasStrsmBatched", {"hipblasStrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrsmBatched", {"hipblasDtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrsmBatched", {"hipblasCtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsmBatched", {"hipblasZtrsmBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// MATINV - Batched
{"cublasSmatinvBatched", {"hipblasSmatinvBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDmatinvBatched", {"hipblasDmatinvBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCmatinvBatched", {"hipblasCmatinvBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZmatinvBatched", {"hipblasZmatinvBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Batch QR Factorization
{"cublasSgeqrfBatched", {"hipblasSgeqrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgeqrfBatched", {"hipblasDgeqrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgeqrfBatched", {"hipblasCgeqrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgeqrfBatched", {"hipblasZgeqrfBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Least Square Min only m >= n and Non-transpose supported
{"cublasSgelsBatched", {"hipblasSgelsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgelsBatched", {"hipblasDgelsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgelsBatched", {"hipblasCgelsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgelsBatched", {"hipblasZgelsBatched", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// DGMM
{"cublasSdgmm", {"hipblasSdgmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDdgmm", {"hipblasDdgmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCdgmm", {"hipblasCdgmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdgmm", {"hipblasZdgmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TPTTR - Triangular Pack format to Triangular format
{"cublasStpttr", {"hipblasStpttr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtpttr", {"hipblasDtpttr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtpttr", {"hipblasCtpttr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtpttr", {"hipblasZtpttr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRTTP - Triangular format to Triangular Pack format
{"cublasStrttp", {"hipblasStrttp", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrttp", {"hipblasDtrttp", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrttp", {"hipblasCtrttp", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrttp", {"hipblasZtrttp", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Blas2 (v2) Routines
{"cublasCreate_v2", {"hipblasCreate", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDestroy_v2", {"hipblasDestroy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetVersion_v2", {"hipblasGetVersion", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGetProperty", {"hipblasGetProperty", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSetStream_v2", {"hipblasSetStream", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetStream_v2", {"hipblasGetStream", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGetPointerMode_v2", {"hipblasGetPointerMode", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasSetPointerMode_v2", {"hipblasSetPointerMode", "", CONV_LIB_FUNC, API_BLAS}},
// GEMV
{"cublasSgemv_v2", {"hipblasSgemv", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDgemv_v2", {"hipblasDgemv", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgemv_v2", {"hipblasCgemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemv_v2", {"hipblasZgemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GBMV
{"cublasSgbmv_v2", {"hipblasSgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDgbmv_v2", {"hipblasDgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgbmv_v2", {"hipblasCgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgbmv_v2", {"hipblasZgbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRMV
{"cublasStrmv_v2", {"hipblasStrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrmv_v2", {"hipblasDtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrmv_v2", {"hipblasCtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrmv_v2", {"hipblasZtrmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TBMV
{"cublasStbmv_v2", {"hipblasStbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtbmv_v2", {"hipblasDtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtbmv_v2", {"hipblasCtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtbmv_v2", {"hipblasZtbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TPMV
{"cublasStpmv_v2", {"hipblasStpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtpmv_v2", {"hipblasDtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtpmv_v2", {"hipblasCtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtpmv_v2", {"hipblasZtpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSV
{"cublasStrsv_v2", {"hipblasStrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrsv_v2", {"hipblasDtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrsv_v2", {"hipblasCtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsv_v2", {"hipblasZtrsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TPSV
{"cublasStpsv_v2", {"hipblasStpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtpsv_v2", {"hipblasDtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtpsv_v2", {"hipblasCtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtpsv_v2", {"hipblasZtpsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TBSV
{"cublasStbsv_v2", {"hipblasStbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtbsv_v2", {"hipblasDtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtbsv_v2", {"hipblasCtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtbsv_v2", {"hipblasZtbsv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYMV/HEMV
{"cublasSsymv_v2", {"hipblasSsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsymv_v2", {"hipblasDsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsymv_v2", {"hipblasCsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsymv_v2", {"hipblasZsymv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChemv_v2", {"hipblasChemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhemv_v2", {"hipblasZhemv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SBMV/HBMV
{"cublasSsbmv_v2", {"hipblasSsbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsbmv_v2", {"hpiblasDsbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChbmv_v2", {"hipblasChbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhbmv_v2", {"hipblasZhbmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPMV/HPMV
{"cublasSspmv_v2", {"hipblasSspmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspmv_v2", {"hipblasDspmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpmv_v2", {"hipblasChpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpmv_v2", {"hipblasZhpmv", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// GER
{"cublasSger_v2", {"hipblasSger", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDger_v2", {"hipblasDger", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgeru_v2", {"hipblasCgeru", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgerc_v2", {"hipblasCgerc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgeru_v2", {"hipblasZgeru", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgerc_v2", {"hipblasZgerc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR/HER
{"cublasSsyr_v2", {"hipblasSsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr_v2", {"hipblasDsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr_v2", {"hipblasCsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr_v2", {"hipblasZsyr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCher_v2", {"hipblasCher", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher_v2", {"hipblasZher", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPR/HPR
{"cublasSspr_v2", {"hipblasSspr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspr_v2", {"hipblasDspr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpr_v2", {"hipblasChpr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpr_v2", {"hipblasZhpr", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR2/HER2
{"cublasSsyr2_v2", {"hipblasSsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr2_v2", {"hipblasDsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr2_v2", {"hipblasCsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr2_v2", {"hipblasZsyr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCher2_v2", {"hipblasCher2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher2_v2", {"hipblasZher2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SPR2/HPR2
{"cublasSspr2_v2", {"hipblasSspr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDspr2_v2", {"hipblasDspr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasChpr2_v2", {"hipblasChpr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhpr2_v2", {"hipblasZhpr2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// Blas3 (v2) Routines
// GEMM
{"cublasSgemm_v2", {"hipblasSgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDgemm_v2", {"hipblasDgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgemm_v2", {"hipblasCgemm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCgemm3m", {"hipblasCgemm3m", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCgemm3mEx", {"hipblasCgemm3mEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemm_v2", {"hipblasZgemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZgemm3m", {"hipblasZgemm3m", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
//IO in FP16 / FP32, computation in float
{"cublasSgemmEx", {"hipblasSgemmEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGemmEx", {"hipblasGemmEx", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasGemmBatchedEx", {"hipblasGemmBatchedEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasGemmStridedBatchedEx", {"hipblasGemmStridedBatchedEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// IO in Int8 complex/cuComplex, computation in cuComplex
{"cublasCgemmEx", {"hipblasCgemmEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasUint8gemmBias", {"hipblasUint8gemmBias", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYRK
{"cublasSsyrk_v2", {"hipblasSsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyrk_v2", {"hipblasDsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyrk_v2", {"hipblasCsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyrk_v2", {"hipblasZsyrk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// IO in Int8 complex/cuComplex, computation in cuComplex
{"cublasCsyrkEx", {"hipblasCsyrkEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// IO in Int8 complex/cuComplex, computation in cuComplex, Gaussian math
{"cublasCsyrk3mEx", {"hipblasCsyrk3mEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HERK
{"cublasCherk_v2", {"hipblasCherk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// IO in Int8 complex/cuComplex, computation in cuComplex
{"cublasCherkEx", {"hipblasCherkEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// IO in Int8 complex/cuComplex, computation in cuComplex, Gaussian math
{"cublasCherk3mEx", {"hipblasCherk3mEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZherk_v2", {"hipblasZherk", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYR2K
{"cublasSsyr2k_v2", {"hipblasSsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsyr2k_v2", {"hipblasDsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsyr2k_v2", {"hipblasCsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsyr2k_v2", {"hipblasZsyr2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HER2K
{"cublasCher2k_v2", {"hipblasCher2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZher2k_v2", {"hipblasZher2k", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SYMM
{"cublasSsymm_v2", {"hipblasSsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDsymm_v2", {"hipblasDsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsymm_v2", {"hipblasCsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZsymm_v2", {"hipblasZsymm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// HEMM
{"cublasChemm_v2", {"hipblasChemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZhemm_v2", {"hipblasZhemm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRSM
{"cublasStrsm_v2", {"hipblasStrsm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDtrsm_v2", {"hipblasDtrsm", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCtrsm_v2", {"hipblasCtrsm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrsm_v2", {"hipblasZtrsm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// TRMM
{"cublasStrmm_v2", {"hipblasStrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDtrmm_v2", {"hipblasDtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCtrmm_v2", {"hipblasCtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZtrmm_v2", {"hipblasZtrmm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// NRM2
{"cublasSnrm2_v2", {"hipblasSnrm2", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDnrm2_v2", {"hipblasDnrm2", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasScnrm2_v2", {"hipblasScnrm2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDznrm2_v2", {"hipblasDznrm2", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// DOT
{"cublasDotEx", {"hipblasDotEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDotcEx", {"hipblasDotcEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSdot_v2", {"hipblasSdot", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDdot_v2", {"hipblasDdot", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCdotu_v2", {"hipblasCdotu", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCdotc_v2", {"hipblasCdotc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdotu_v2", {"hipblasZdotu", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdotc_v2", {"hipblasZdotc", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SCAL
{"cublasScalEx", {"hipblasScalEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSscal_v2", {"hipblasSscal", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDscal_v2", {"hipblasDscal", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCscal_v2", {"hipblasCscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsscal_v2", {"hipblasCsscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZscal_v2", {"hipblasZscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdscal_v2", {"hipblasZdscal", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AXPY
{"cublasAxpyEx", {"hipblasAxpyEx", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasSaxpy_v2", {"hipblasSaxpy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDaxpy_v2", {"hipblasDaxpy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCaxpy_v2", {"hipblasCaxpy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZaxpy_v2", {"hipblasZaxpy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// COPY
{"cublasScopy_v2", {"hipblasScopy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDcopy_v2", {"hipblasDcopy", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasCcopy_v2", {"hipblasCcopy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZcopy_v2", {"hipblasZcopy", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// SWAP
{"cublasSswap_v2", {"hipblasSswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDswap_v2", {"hipblasDswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCswap_v2", {"hipblasCswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZswap_v2", {"hipblasZswap", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AMAX
{"cublasIsamax_v2", {"hipblasIsamax", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasIdamax_v2", {"hipblasIdamax", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasIcamax_v2", {"hipblasIcamax", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIzamax_v2", {"hipblasIzamax", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// AMIN
{"cublasIsamin_v2", {"hipblasIsamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIdamin_v2", {"hipblasIdamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIcamin_v2", {"hipblasIcamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasIzamin_v2", {"hipblasIzamin", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ASUM
{"cublasSasum_v2", {"hipblasSasum", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasDasum_v2", {"hipblasDasum", "", CONV_LIB_FUNC, API_BLAS}},
{"cublasScasum_v2", {"hipblasScasum", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDzasum_v2", {"hipblasDzasum", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROT
{"cublasSrot_v2", {"hipblasSrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrot_v2", {"hipblasDrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCrot_v2", {"hipblasCrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCsrot_v2", {"hipblasCsrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZrot_v2", {"hipblasZrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZdrot_v2", {"hipblasZdrot", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTG
{"cublasSrotg_v2", {"hipblasSrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotg_v2", {"hipblasDrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasCrotg_v2", {"hipblasCrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasZrotg_v2", {"hipblasZrotg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTM
{"cublasSrotm_v2", {"hipblasSrotm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotm_v2", {"hipblasDrotm", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
// ROTMG
{"cublasSrotmg_v2", {"hipblasSrotmg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
{"cublasDrotmg_v2", {"hipblasDrotmg", "", CONV_LIB_FUNC, API_BLAS, HIP_UNSUPPORTED}},
};