char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

leonardHONGCUDA: add cublasSgemmBatched mapping for HIP/MUSA vendor headers (#25033)2f18fe13c

char/aliceai-t5-moe
6.7 KiB151 linesraw
1#pragma once
2
3#include <musa_runtime.h>
4#include <musa.h>
5#include <mublas.h>
6#include <musa_bf16.h>
7#include <musa_fp16.h>
8#define CUBLAS_COMPUTE_16F CUDA_R_16F
9#define CUBLAS_COMPUTE_32F CUDA_R_32F
10#define CUBLAS_COMPUTE_32F_FAST_16F MUBLAS_COMPUTE_32F_FAST_16F
11#define CUBLAS_GEMM_DEFAULT MUBLAS_GEMM_DEFAULT
12#define CUBLAS_GEMM_DEFAULT_TENSOR_OP MUBLAS_GEMM_DEFAULT
13#define CUBLAS_OP_N MUBLAS_OP_N
14#define CUBLAS_OP_T MUBLAS_OP_T
15#define CUBLAS_DEFAULT_MATH MUBLAS_DEFAULT_MATH
16#define CUBLAS_SIDE_RIGHT MUBLAS_SIDE_RIGHT
17#define CUBLAS_FILL_MODE_UPPER MUBLAS_FILL_MODE_UPPER
18#define CUBLAS_DIAG_NON_UNIT MUBLAS_DIAG_NON_UNIT
19#define CUBLAS_STATUS_SUCCESS MUBLAS_STATUS_SUCCESS
20#define CUBLAS_TF32_TENSOR_OP_MATH MUBLAS_TENSOR_OP_MATH
21#define CUDA_R_16F  MUSA_R_16F
22#define CUDA_R_16BF MUSA_R_16BF
23#define CUDA_R_32F  MUSA_R_32F
24#define cublasStrsmBatched mublasStrsmBatched
25#define cublasComputeType_t cudaDataType_t
26#define cublasCreate mublasCreate
27#define cublasDestroy mublasDestroy
28#define cublasGemmEx mublasGemmEx
29#define cublasGemmBatchedEx mublasGemmBatchedEx
30#define cublasGemmStridedBatchedEx mublasGemmStridedBatchedEx
31#define cublasHandle_t mublasHandle_t
32#define cublasSetMathMode mublasSetMathMode
33#define cublasSetStream mublasSetStream
34#define cublasSgemm mublasSgemm
35#define cublasSgemmBatched mublasSgemmBatched
36#define cublasSgemmStridedBatched mublasSgemmStridedBatched
37#define cublasStatus_t mublasStatus_t
38#define cublasOperation_t mublasOperation_t
39#define cublasGetStatusString mublasGetStatusString
40#define cudaDataType_t musaDataType_t
41#define cudaDeviceCanAccessPeer musaDeviceCanAccessPeer
42#define cudaDeviceDisablePeerAccess musaDeviceDisablePeerAccess
43#define cudaDeviceEnablePeerAccess musaDeviceEnablePeerAccess
44#define cudaDeviceGetPCIBusId musaDeviceGetPCIBusId
45#define cudaDeviceProp musaDeviceProp
46#define cudaDeviceSynchronize musaDeviceSynchronize
47#define cudaError_t musaError_t
48#define cudaErrorMemoryAllocation musaErrorMemoryAllocation
49#define cudaErrorPeerAccessAlreadyEnabled musaErrorPeerAccessAlreadyEnabled
50#define cudaErrorPeerAccessNotEnabled musaErrorPeerAccessNotEnabled
51#define cudaEventCreateWithFlags musaEventCreateWithFlags
52#define cudaEventDisableTiming musaEventDisableTiming
53#define cudaEventRecord musaEventRecord
54#define cudaEventSynchronize musaEventSynchronize
55#define cudaEvent_t musaEvent_t
56#define cudaEventDestroy musaEventDestroy
57#define cudaFree musaFree
58#define cudaFreeHost musaFreeHost
59#define cudaGetDevice musaGetDevice
60#define cudaGetDeviceCount musaGetDeviceCount
61#define cudaGetDeviceProperties musaGetDeviceProperties
62#define cudaGetErrorString musaGetErrorString
63#define cudaGetLastError musaGetLastError
64#define cudaHostRegister musaHostRegister
65#define cudaHostRegisterPortable musaHostRegisterPortable
66#define cudaHostRegisterReadOnly musaHostRegisterReadOnly
67#define cudaHostUnregister musaHostUnregister
68#define cudaLaunchCooperativeKernel musaLaunchCooperativeKernel
69#define cudaLaunchHostFunc musaLaunchHostFunc
70#define cudaMalloc musaMalloc
71#define cudaMallocHost musaMallocHost
72#define cudaMallocManaged musaMallocManaged
73#define cudaMemcpy musaMemcpy
74#define cudaMemcpyAsync musaMemcpyAsync
75#define cudaMemcpyPeerAsync musaMemcpyPeerAsync
76#define cudaMemcpy2DAsync musaMemcpy2DAsync
77#define cudaMemcpyDeviceToDevice musaMemcpyDeviceToDevice
78#define cudaMemcpyDeviceToHost musaMemcpyDeviceToHost
79#define cudaMemcpyHostToDevice musaMemcpyHostToDevice
80#define cudaMemcpyKind musaMemcpyKind
81#define cudaMemset musaMemset
82#define cudaMemsetAsync musaMemsetAsync
83#define cudaMemGetInfo musaMemGetInfo
84#define cudaOccupancyMaxPotentialBlockSize musaOccupancyMaxPotentialBlockSize
85#define cudaSetDevice musaSetDevice
86#define cudaStreamCreateWithFlags musaStreamCreateWithFlags
87#define cudaStreamDestroy musaStreamDestroy
88#define cudaStreamFireAndForget musaStreamFireAndForget
89#define cudaStreamNonBlocking musaStreamNonBlocking
90#define cudaStreamPerThread musaStreamPerThread
91#define cudaStreamSynchronize musaStreamSynchronize
92#define cudaStreamWaitEvent musaStreamWaitEvent
93#define cudaStream_t musaStream_t
94#define cudaSuccess musaSuccess
95
96// Additional mappings for MUSA virtual memory pool
97#define CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED MU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
98#define CU_MEM_ACCESS_FLAGS_PROT_READWRITE MU_MEM_ACCESS_FLAGS_PROT_READWRITE
99#define CU_MEM_ALLOC_GRANULARITY_RECOMMENDED MU_MEM_ALLOC_GRANULARITY_RECOMMENDED
100#define CU_MEM_ALLOCATION_TYPE_PINNED MU_MEM_ALLOCATION_TYPE_PINNED
101#define CU_MEM_LOCATION_TYPE_DEVICE MU_MEM_LOCATION_TYPE_DEVICE
102#define CUdevice MUdevice
103#define CUdeviceptr MUdeviceptr
104#define CUmemAccessDesc MUmemAccessDesc
105#define CUmemAllocationProp MUmemAllocationProp
106#define CUmemGenericAllocationHandle MUmemGenericAllocationHandle
107#define cuDeviceGet muDeviceGet
108#define cuDeviceGetAttribute muDeviceGetAttribute
109#define cuMemAddressFree muMemAddressFree
110#define cuMemAddressReserve muMemAddressReserve
111#define cuMemCreate muMemCreate
112#define cuMemGetAllocationGranularity muMemGetAllocationGranularity
113#define cuMemMap muMemMap
114#define cuMemRelease muMemRelease
115#define cuMemSetAccess muMemSetAccess
116#define cuMemUnmap muMemUnmap
117#define cudaFuncAttributeMaxDynamicSharedMemorySize musaFuncAttributeMaxDynamicSharedMemorySize
118#define cudaFuncSetAttribute musaFuncSetAttribute
119#define cudaMemcpy3DPeerParms musaMemcpy3DPeerParms
120#define make_cudaExtent make_musaExtent
121#define make_cudaPitchedPtr make_musaPitchedPtr
122
123// Additional mappings for MUSA graphs
124#define CUDA_SUCCESS MUSA_SUCCESS
125#define CUresult MUresult
126#define cuGetErrorString muGetErrorString
127#define cudaErrorGraphExecUpdateFailure musaErrorGraphExecUpdateFailure
128#define cudaErrorInvalidDeviceFunction musaErrorInvalidDeviceFunction
129#define cudaGraphDestroy musaGraphDestroy
130#define cudaGraphExecDestroy musaGraphExecDestroy
131#define cudaGraphExec_t musaGraphExec_t
132#define cudaGraphExecUpdate musaGraphExecUpdate
133#define cudaGraphExecUpdateResult musaGraphExecUpdateResult
134#define cudaGraphGetNodes musaGraphGetNodes
135#define cudaGraphInstantiate musaGraphInstantiate
136#define cudaGraphKernelNodeGetParams musaGraphKernelNodeGetParams
137#define cudaGraphKernelNodeSetParams musaGraphKernelNodeSetParams
138#define cudaGraphLaunch musaGraphLaunch
139#define cudaGraphNodeGetType musaGraphNodeGetType
140#define cudaGraphNode_t musaGraphNode_t
141#define cudaGraphNodeType musaGraphNodeType
142#define cudaGraphNodeTypeKernel musaGraphNodeTypeKernel
143#define cudaGraph_t musaGraph_t
144#define cudaKernelNodeParams musaKernelNodeParams
145#define cudaStreamCaptureModeRelaxed musaStreamCaptureModeRelaxed
146#define cudaStreamBeginCapture musaStreamBeginCapture
147#define cudaStreamEndCapture musaStreamEndCapture
148#define cudaOccupancyMaxActiveBlocksPerMultiprocessor musaOccupancyMaxActiveBlocksPerMultiprocessor
149
150typedef __mt_bfloat16 nv_bfloat16;
151typedef __mt_bfloat162 nv_bfloat162;