Skip to content

Commit d6f0e00

Browse files
factnnautomerge-botclaude
authored
docs: fix glossary, heading, and code example
1. Add KernelGenBench-nocublas glossary entry (fixes broken term ref) 2. Remove orphaned "Step 3" numbering in getting-started heading 3. Use triton.my_op in custom-operators code example for clarity Co-authored-by: automerge-bot <devnull@local> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b8c0dc4 commit d6f0e00

6 files changed

Lines changed: 904 additions & 3 deletions

File tree

docs/exp.md

Lines changed: 295 additions & 0 deletions
Large diffs are not rendered by default.

docs/mublas.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
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

Comments
 (0)