|
| 1 | +# cuBLAS → MUBLAS 迁移对照 |
| 2 | + |
| 3 | +## 对照规则 |
| 4 | + |
| 5 | +| cuBLAS | MUBLAS | 规则 | |
| 6 | +|--------|--------|------| |
| 7 | +| `cublas` 前缀 | `mublas` 前缀 | `cu` → `mu` | |
| 8 | +| `_v2` 后缀 | 去掉 | MUBLAS 无 `_v2` | |
| 9 | +| `_64` 后缀 | 去掉 | MUBLAS 无 `_64`,参数用 `int` 非 `int64_t` | |
| 10 | +| `cublasSgemmEx` | `mublasGemmEx` | 无类型前缀,单例泛型函数 | |
| 11 | +| `cublasHandle_t` | `mublasHandle_t` | | |
| 12 | +| `cudaStream_t` | `MUstream` | | |
| 13 | +| `cuComplex` | `muComplex` | | |
| 14 | +| `cuDoubleComplex` | `muDoubleComplex` | | |
| 15 | +| `CUBLAS_OP_*` | `MUBLAS_OP_*` | | |
| 16 | +| `CUBLAS_FILL_MODE_*` | `MUBLAS_FILL_MODE_*` | | |
| 17 | +| `CUBLAS_DIAG_*` | `MUBLAS_DIAG_*` | | |
| 18 | +| `CUBLAS_SIDE_*` | `MUBLAS_SIDE_*` | | |
| 19 | +| `CUBLAS_STATUS_*` | `MUBLAS_STATUS_*` | | |
| 20 | +| `<cublas_v2.h>` | `<mublas.h>` | | |
| 21 | +| `-lcublas` | `-lmublas` | | |
| 22 | + |
| 23 | +## 详细对照表 |
| 24 | + |
| 25 | +``` |
| 26 | +# ===== 函数替换 ===== |
| 27 | +cublasCcopy_v2 → mublasCcopy |
| 28 | +cublasCdotu_v2 → mublasCdotu |
| 29 | +cublasCgemmStridedBatched → mublasCgemmStridedBatched |
| 30 | +cublasCgemmStridedBatched_64→ mublasCgemmStridedBatched (去 _64) |
| 31 | +cublasCgemm_v2 → mublasCgemm |
| 32 | +cublasCgemvBatched_64 → mublasCgemvBatched (去 _64) |
| 33 | +cublasCgemvStridedBatched → mublasCgemvStridedBatched |
| 34 | +cublasCgemv_v2 → mublasCgemv |
| 35 | +cublasCgeru_v2 → mublasCgeru |
| 36 | +cublasCsymm_v2 → mublasCsymm |
| 37 | +cublasCsymv_v2 → mublasCsymv |
| 38 | +cublasCsyrkEx → mublasCsyrkEx |
| 39 | +cublasDasum_v2 → mublasDasum |
| 40 | +cublasDaxpy_v2 → mublasDaxpy |
| 41 | +cublasDcopy_v2 → mublasDcopy |
| 42 | +cublasDgemmBatched → mublasDgemmBatched |
| 43 | +cublasDgemmStridedBatched → mublasDgemmStridedBatched |
| 44 | +cublasDgemmStridedBatched_64→ mublasDgemmStridedBatched (去 _64) |
| 45 | +cublasDgemm_v2 → mublasDgemm |
| 46 | +cublasDgemvBatched → mublasDgemvBatched |
| 47 | +cublasDgemvStridedBatched → mublasDgemvStridedBatched |
| 48 | +cublasDgemv_v2 → mublasDgemv |
| 49 | +cublasDsbmv_v2 → mublasDsbmv |
| 50 | +cublasDsyr2_v2 → mublasDsyr2 |
| 51 | +cublasDtrsmBatched → mublasDtrsmBatched |
| 52 | +cublasHgemmBatched → mublasHgemmBatched |
| 53 | +cublasHgemmStridedBatched → mublasHgemmStridedBatched |
| 54 | +cublasSaxpy_v2 → mublasSaxpy |
| 55 | +cublasSdgmm → mublasSdgmm |
| 56 | +cublasSdot_v2 → mublasSdot |
| 57 | +cublasSgeam → mublasSgeam |
| 58 | +cublasSgemmBatched_64 → mublasSgemmBatched (去 _64) |
| 59 | +cublasSgemmEx → mublasGemmEx (去类型前缀 S) |
| 60 | +cublasSgemmStridedBatched → mublasSgemmStridedBatched |
| 61 | +cublasSgemm_v2 → mublasSgemm |
| 62 | +cublasSgemvBatched → mublasSgemvBatched |
| 63 | +cublasSgemvStridedBatched → mublasSgemvStridedBatched |
| 64 | +cublasSger_v2 → mublasSger |
| 65 | +cublasSscal_v2 → mublasSscal |
| 66 | +cublasSsyrk_v2 → mublasSsyrk |
| 67 | +cublasStbmv_v2 → mublasStbmv |
| 68 | +cublasStrsm_v2 → mublasStrsm |
| 69 | +cublasStrsv_v2 → mublasStrsv |
| 70 | +cublasZdotc_v2 → mublasZdotc |
| 71 | +cublasZgemmBatched → mublasZgemmBatched |
| 72 | +cublasZgemmStridedBatched → mublasZgemmStridedBatched |
| 73 | +cublasZgemvBatched → mublasZgemvBatched |
| 74 | +cublasZgemvStridedBatched → mublasZgemvStridedBatched |
| 75 | +cublasZgerc_v2 → mublasZgerc |
| 76 | +cublasZswap_v2 → mublasZswap |
| 77 | +cublasZtrsmBatched → mublasZtrsmBatched |
| 78 | +
|
| 79 | +# ===== 类型替换 ===== |
| 80 | +cublasHandle_t → mublasHandle_t |
| 81 | +cublasStatus_t → mublasStatus |
| 82 | +cublasOperation_t → mublasOperation_t / mublasOperation |
| 83 | +cublasFillMode_t → mublasFillMode_t |
| 84 | +cublasDiagType_t → mublasDiagType_t |
| 85 | +cublasSideMode_t → mublasSideMode_t |
| 86 | +cudaStream_t → MUstream |
| 87 | +cuComplex → muComplex |
| 88 | +cuDoubleComplex → muDoubleComplex |
| 89 | +__half → __half (不变, 来自 musa_fp16.h) |
| 90 | +
|
| 91 | +# ===== 枚举替换 ===== |
| 92 | +CUBLAS_OP_N / T / C → MUBLAS_OP_N / T / C |
| 93 | +CUBLAS_FILL_MODE_LOWER/UPPER→ MUBLAS_FILL_MODE_LOWER/UPPER (多 FULL=123 option) |
| 94 | +CUBLAS_DIAG_NON_UNIT/UNIT → MUBLAS_DIAG_NON_UNIT/UNIT |
| 95 | +CUBLAS_SIDE_LEFT/RIGHT → MUBLAS_SIDE_LEFT/RIGHT (多 BOTH=143 option) |
| 96 | +CUBLAS_STATUS_SUCCESS → MUBLAS_STATUS_SUCCESS |
| 97 | +CUBLAS_STATUS_* → MUBLAS_STATUS_* |
| 98 | +
|
| 99 | +# ===== 辅助函数 ===== |
| 100 | +cublasCreate → mublasCreate |
| 101 | +cublasDestroy → mublasDestroy |
| 102 | +cublasSetStream → mublasSetStream |
| 103 | +cublasGetStream → mublasGetStream |
| 104 | +cublasSetMathMode → mublasSetMathMode |
| 105 | +cublasGetMathMode → mublasGetMathMode |
| 106 | +cublasGetVersion → mublasGetVersion |
| 107 | +cublasSetPointerMode → mublasSetPointerMode |
| 108 | +cublasGetPointerMode → mublasGetPointerMode |
| 109 | +cublasSetAtomicsMode → mublasSetAtomicsMode |
| 110 | +cublasGetAtomicsMode → mublasGetAtomicsMode |
| 111 | +cublasSetWorkspace → mublasSetWorkspace |
| 112 | +cublasSetVectorAsync → mublasSetVectorAsync |
| 113 | +cublasGetVectorAsync → mublasGetVectorAsync |
| 114 | +cublasSetMatrixAsync → mublasSetMatrixAsync |
| 115 | +cublasGetMatrixAsync → mublasGetMatrixAsync |
| 116 | +``` |
| 117 | + |
| 118 | +## Python import 替换示例 |
| 119 | + |
| 120 | +```python |
| 121 | +# 原 cuBLAS |
| 122 | +from .cublasCcopy_v2 import cublasCcopy_v2 |
| 123 | +from .cublasSgemmEx import cublasSgemmEx |
| 124 | +from .cublasSgemmBatched_64 import cublasSgemmBatched_64 |
| 125 | + |
| 126 | +# 改为 MUBLAS |
| 127 | +from .mublasCcopy import mublasCcopy |
| 128 | +from .mublasGemmEx import mublasGemmEx # 注意: 去 S 前缀 |
| 129 | +from .mublasSgemmBatched import mublasSgemmBatched # 去 _64 |
| 130 | +``` |
| 131 | + |
| 132 | +## 3 个例外 |
| 133 | + |
| 134 | +| # | cuBLAS | MUBLAS | 原因 | |
| 135 | +|---|--------|--------|------| |
| 136 | +| 1 | `cublasSgemmEx` | `mublasGemmEx` | 摩尔用泛型 `GemmEx` 无类型前缀 | |
| 137 | +| 2 | `*_64` 系列 | 去掉 `_64` | 摩尔不存在 `_64` 变种,参数均为 `int` | |
| 138 | +| 3 | `*_v2` 系列 | 去掉 `_v2` | 摩尔使用 C99 接口无版本后缀 | |
| 139 | + |
| 140 | +## MUBLAS 版本信息 |
| 141 | + |
| 142 | +- 版本: **1.10.6** |
| 143 | +- 库文件: `libmublas.so`, `libmublasLt.so` |
| 144 | +- 头文件: `mublas.h`, `mublas_v2.h`(5.1.0), `mublasLt.h`, `mublasXt.h` |
| 145 | +- 路径: `/usr/local/musa/include/` |
0 commit comments