Compare commits

...

1 Commits

Author SHA1 Message Date
bbdd f9f8e9254f Add tilelang_maca_install_guide.md 2026-06-28 04:18:21 +00:00
1 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,97 @@
# TileLang MACA 安装与验证指南
> 环境MetaX C500 / MACA 3.7.2.1 / Python 3.12 / Conda
>
> 源码:`/data/tilelang-metax`dev 分支)
---
## 1. 前置条件
- MACA 已安装在 `/opt/maca`(包含 `libmcruntime.so` 等运行时库)
- Python 3.12 + Conda 环境
---
## 2. 编译安装 tilelang启用 MACA 后端)
```bash
cd /data/tilelang-metax
rm -rf build
export USE_MACA=ON
pip install -e . -v
```
编译产物位于 `build/lib/`,包含:
- `libtilelang.so` — 注册 maca target kind
- `libtvm.so` — TVM 运行时
---
## 3. 修复 `.pth` 文件(关键步骤)
tilelang 的 editable install 生成的 `.pth` 文件缺少 `tvm` Python 包的正确路径。
**文件位置**`/opt/conda/lib/python3.12/site-packages/_tilelang_editable.pth`
**修改**:将其中一行 `/data/tilelang-metax/3rdparty/tvm` 改为:
```
/data/tilelang-metax/3rdparty/tvm/python
```
修改后的文件内容应为:
```
import _tilelang_editable
/data/tilelang-metax
/data/tilelang-metax
/data/tilelang-metax/3rdparty/tvm/python
/data/tilelang-metax/3rdparty/tvm
/data/tilelang-metax/3rdparty/tvm
/data/tilelang-metax/3rdparty/tvm/3rdparty/dmlc-core
/data/tilelang-metax/3rdparty/tvm
/data/tilelang-metax/3rdparty/cutlass
/data/tilelang-metax/3rdparty/cutlass
/data/tilelang-metax/3rdparty/composable_kernel
/data/tilelang-metax/3rdparty/composable_kernel
```
---
## 4. 验证
### 4.1 基础导入
```bash
python -c "import tilelang; print(tilelang.__version__)"
# 预期输出0.1.9+maca.gitee6db437
```
### 4.2 MACA Target 验证
**必须先 `import tilelang`**,因为它会加载 `libtilelang.so`(注册 maca target
```bash
python -c "
import tilelang
from tvm.target import Target
t = Target('maca')
print(t)
"
# 预期输出:
# maca -keys=maca,gpu -max_local_memory_per_block=4095 -max_num_threads=1024
# -max_shared_memory_per_block=65536 -max_threads_per_block=1024
# -mcpu=xcore1000 -mtriple=mxc-metax-macahca -thread_warp_size=64
```
---
## 5. 常见问题
| 问题 | 原因 | 解决 |
|------|------|------|
| `ModuleNotFoundError: No module named 'tvm'` | `.pth` 文件缺少 `3rdparty/tvm/python` 路径 | 修改 `.pth` 文件(见步骤 3 |
| `Target kind "maca" is not defined` | 未先 `import tilelang``libtilelang.so` 未加载 | 先 `import tilelang` 再使用 `Target('maca')` |
| `Target kind "maca" is not defined`(已 import tilelang | 编译时未启用 MACA | 用 `USE_MACA=ON` 重新编译(见步骤 2 |
| 编译报 `ninja: error: Makefile` | `build/` 目录残留旧 Makefile | `rm -rf build` 后重新编译 |