#ifdef ENABLE_METAX_MC_API
#define hcblasHandle_t mcblasHandle_t
#define hcdnnHandle_t mcdnnHandle_t
#define hcStream_t mcStream_t
#define hcdnnDataType_t mcdnnDataType_t
#define hpcc_bfloat16 maca_bfloat16
#define hpcc_bfloat162 maca_bfloat162
#define __hpcc_fp8_e4m3 __maca_fp8_e4m3
#define __hpcc_bfloat16 __maca_bfloat16
#define __hpcc_bfloat16 __maca_bfloat16
#define hcError_t mcError_t
#define hcSuccess mcSuccess
#define hcDeviceProp_t mcDeviceProp_t
#define hcGetDeviceProperties mcGetDeviceProperties
#define HCBLAS_STATUS_SUCCESS MCBLAS_STATUS_SUCCESS
#define HCDNN_STATUS_SUCCESS MCDNN_STATUS_SUCCESS
#define hcblasCreate mcblasCreate
#define hcblasSetStream mcblasSetStream
#define hcGetDeviceCount mcGetDeviceCount
#define hcSetDevice mcSetDevice
#define hcDeviceSynchronize mcDeviceSynchronize
#define hcStreamCreate mcStreamCreate
#define hcStreamDestroy mcStreamDestroy
#define hcStreamSynchronize mcStreamSynchronize
#define hcdnnCreate mcdnnCreate
#define hcdnnSetStream mcdnnSetStream
#define hcEvent_t mcEvent_t
#define hcStreamWaitEvent mcStreamWaitEvent
#define HCDNN_DATA_HALF MCDNN_DATA_HALF
#define HCDNN_DATA_FLOAT MCDNN_DATA_FLOAT
#define HCDNN_DATA_DOUBLE MCDNN_DATA_DOUBLE
#define HCDNN_DATA_BFLOAT16 MCDNN_DATA_BFLOAT16
#define HCDNN_DATA_INT8 MCDNN_DATA_INT8
#define HCDNN_DATA_INT32 MCDNN_DATA_INT32
#define HCDNN_DATA_INT64 MCDNN_DATA_INT64
#define HCDNN_DATA_UINT8 MCDNN_DATA_UINT8
#define hcEventCreate mcEventCreate
#define hcEventCreateWithFlags mcEventCreateWithFlags
#define hcEventDefault mcEventDefault
#define hcEventDisableTiming mcEventDisableTiming
#define hcEventBlockingSync mcEventBlockingSync
#define hcEventRecord mcEventRecord
#define hcEventQuery mcEventQuery
#define hcEventSynchronize mcEventSynchronize
#define hcEventDestroy mcEventDestroy
#define hcEventElapsedTime mcEventElapsedTime
#define hcMalloc mcMalloc
#define hpccDataType macaDataType
#define hcblasComputeType_t mcblasComputeType_t
#define hcMallocHost mcMallocHost
#define hcFree mcFree
#define hcFreeHost mcFreeHost
#define hcMemcpyKind mcMemcpyKind
#define hcMemcpyHostToDevice mcMemcpyHostToDevice
#define hcMemcpyDeviceToHost mcMemcpyDeviceToHost
#define hcMemcpyDeviceToDevice mcMemcpyDeviceToDevice
#define hcMemcpyHostToHost mcMemcpyHostToHost
#define hcMemcpyDefault mcMemcpyDefault
#define hcMemcpy mcMemcpy
#define hcMemcpyAsync mcMemcpyAsync
#define hcMallocAsync mcMallocAsync
#define hcFreeAsync mcFreeAsync
#define HPCC_R_16F MACA_R_16F
#define HPCC_R_16BF MACA_R_16BF
#define HPCC_R_32F MACA_R_32F
#define HCBLAS_COMPUTE_32F MCBLAS_COMPUTE_32F
#define HCBLAS_COMPUTE_32F_FAST_TF32 MCBLAS_COMPUTE_32F_FAST_TF32
#define HCBLAS_OP_N MCBLAS_OP_N
#define HCBLAS_OP_T MCBLAS_OP_T
#define HCBLAS_GEMM_DEFAULT_TENSOR_OP MCBLAS_GEMM_DEFAULT_TENSOR_OP
#define hcblasGemmStridedBatchedEx mcblasGemmStridedBatchedEx
#define hcLaunchKernel mcLaunchKernel
#define hcclDataType_t mcclDataType_t
#define hcclRedOp_t mcclRedOp_t
#define hcclComm_t mcclComm_t
#define hcclFloat mcclFloat
#define hcclHalf mcclHalf
#define hcclBfloat16 mcclBfloat16
#define hcclSum mcclSum
#define hcclProd mcclProd
#define hcclMax mcclMax
#define hcclMin mcclMin
#define hcclAvg mcclAvg
#define hcclCommInitAll mcclCommInitAll
#define hcclSuccess mcclSuccess
#define hcclCommDestroy mcclCommDestroy
#define hcclAllReduce mcclAllReduce
#define hcStreamCaptureMode mcStreamCaptureMode
#define hcStreamCaptureModeGlobal mcStreamCaptureModeGlobal
#define hcStreamCaptureModeThreadLocal mcStreamCaptureModeThreadLocal
#define hcStreamCaptureModeRelaxed mcStreamCaptureModeRelaxed
#define hcStreamBeginCapture mcStreamBeginCapture
#define hcStreamEndCapture mcStreamEndCapture
#define hcGraph_t mcGraph_t
#define hcGraphExec_t mcGraphExec_t
#define hcGraphNode_t mcGraphNode_t
#define hcGraphInstantiate mcGraphInstantiate
#define hcGraphDestroy mcGraphDestroy
#define hcGraphExecDestroy mcGraphExecDestroy
#define hcGraphLaunch mcGraphLaunch
#endif
