已合并
fix: 修复TileLang-Ascend构建命令中不支持的-v参数及默认安装下CATLASS单元测试失败的问题 #166
fix: 修复TileLang-Ascend构建命令中不支持的-v参数及默认安装下CATLASS单元测试失败的问题 #166
已合并
xmz创建于 9月14日
xmz成员
9月14日

What this PR does / why we need it?

改动 1:修复 TileLang-Ascend 构建命令中不支持的 -v 参数(关联 #68)

README.md 与 docs/zh/install_guide.md 中「从源码构建并安装 TileLang-Ascend wheel」一节的构建命令为:

./build_wheel_ascend.sh --enable-llvm -v

但 tilelang-ascend 仓库的 build_wheel_ascend.sh 脚本仅支持 --enable-llvm 一个可选参数(见 tile-ai/tilelang-ascend build_wheel_ascend.sh),传入 -v 会在参数解析阶段立即失败(Unknown option: -v,退出码 1),后续 pip install -U dist/tilelang-*.whl 无从执行,用户按文档操作无法完成 TileLang-Ascend 安装。该脚本自引入(tile-ai/tilelang-ascend#612)以来从未支持过 -v,tilelang-ascend 官方 README 用法也仅为 ./build_wheel_ascend.sh [--enable-llvm]。

本 PR 将两处命令修正为 ./build_wheel_ascend.sh --enable-llvm,与上游官方文档一致,命令可直接执行。

(!155 原本附带的 README 第 23 行失效锚点修复 [版本配套表](#版本配套表),已由 master 最新提交 fda1a3e 更完整地修复为 [版本说明](#版本说明),故本 PR 不再重复改动。)

改动 2:修复默认安装下运行单元测试时 CATLASS 用例失败的问题(关联 #69)

快速入门文档指引通过 pytest tests/unit_tests 运行单元测试验证算子功能,但 CATLASS 算子默认不参与编译(需安装时设置 MINDSPEED_BUILD_CATLASS=1,见 README「可选:编译并运行 CATLASS 算子」章节)。默认安装下 tests/unit_tests/catlass/test_chunk_loss.py 的用例报错失败:

AttributeError: '_OpNamespace' 'mindspeed_ops' object has no attribute 'catlass_chunk_loss'

修改内容:

  • 为 catlass 用例增加可选组件跳过保护(与 tilelang 用例 pytest.importorskip("tilelang") 的处理方式一致):未启用 CATLASS 编译时自动跳过,并在 skip reason 中给出启用方法;
  • 快速入门文档「运行单元测试」章节补充 CATLASS / TileLang 可选组件与用例跳过行为的说明。master 上该文档已由 quick_start.md 更名为 quick_start_ops.md,本 PR 已将说明相应落到新文件。

Does this PR introduce any user-facing change?

  • 文档中「可选:安装TileLang-Ascend以使用TileLang算子」一节的构建命令由 ./build_wheel_ascend.sh --enable-llvm -v 修正为 ./build_wheel_ascend.sh --enable-llvm,涉及 README.md、docs/zh/install_guide.md。修正前用户按文档操作会立即得到 Unknown option: -v 报错;修正后命令可正常执行。
  • docs/zh/quick_start_ops.md「运行单元测试」章节新增两条可选组件说明。
  • 未启用 CATLASS 编译时,catlass 单元测试由直接失败改为自动跳过(跳过原因中提示设置 MINDSPEED_BUILD_CATLASS=1 重新安装)。

How was this patch tested?

两项改动的详细实测与原 !155 / !156 完全一致(改动内容未变,仅重新基于 master 合入):

1. TileLang-Ascend 构建命令(昇腾环境实测:Ascend 910B / CANN 9.0.0 / Python 3.11 / Debian 11 x86_64):

  • 修正前命令(文档原命令)立即失败:
$ ./build_wheel_ascend.sh --enable-llvm -v
Unknown option: -v
Usage: ./build_wheel_ascend.sh [--enable-llvm]
$ echo $?
1
  • 修正后命令按文档完整流程执行成功(参数解析通过、TVM/TileLang 编译完成),产出 dist/tilelang-0.1.4+linux.cann900-cp311-cp311-linux_x86_64.whl,安装后 python -c "import tilelang; print(tilelang.__version__)" 输出 0.1.4+89a9364e47a341fffdd65ed94786b1d4f9b6a78c,导入验证通过。

2. CATLASS 用例跳过保护(Ascend 910B、CANN 9.0.0、Python 3.11、PyTorch 2.9.0、torch_npu 2.9.0):

场景 修复前 修复后
默认安装(pip install -e .)后运行 pytest tests/unit_tests/catlass 27 failed(AttributeError)/ 2 passed(纯输入校验用例) 29 skipped(reason 提示 MINDSPEED_BUILD_CATLASS=1)
MINDSPEED_BUILD_CATLASS=1 安装后运行 pytest tests/unit_tests/catlass 29 passed 29 passed(守卫不触发)
  • MINDSPEED_BUILD_CATLASS=1 场景包含 rm -rf build 后全量干净重装的复验,两次均 29 passed;
  • 全量 pytest tests/unit_tests(默认安装、修复前,Ascend 910B 实测):27 failed / 912 passed / 108 skipped,失败全部集中在 catlass 算子缺失(AttributeError),其余模块(aclnn / triton)用例均通过或按设计跳过。
likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 xmz 的贡献)
Xxmz成员
9月14日 创建了 pull request,commit 65addd7a
Xxmz成员
9月14日 关联了issue:[Doc]: install_guide.md里tilelang-ascend安装命令报错不支持-v,[Bug]: 未编译安装catlass时,单元测试报错
atomgit-bot
atomgit-bot
9月14日 评论:

变更摘要

本 PR 合并原 !155 与 !156 两处改动:一是修正 TileLang-Ascend 构建文档中不支持的 -v 参数,使文档命令可直接执行;二是为默认安装(未启用 CATLASS 编译)下必然失败的 CATLASS 单元测试增加跳过保护,并在快速入门文档中补充可选组件说明。核心代码改动集中在 tests/unit_tests/catlass/test_chunk_loss.py:将 pytestmark 由单个 skipif 改为列表,新增对 torch.ops.mindspeed_ops.catlass_chunk_loss 存在性的检查,未编译 CATLASS 算子时用例自动跳过。

主要改动

  • CATLASS 用例跳过保护: tests/unit_tests/catlass/test_chunk_loss.py 中 pytestmark 改为两个 pytest.mark.skipif 组成的列表,新增条件 not hasattr(torch.ops.mindspeed_ops, "catlass_chunk_loss"),未启用 CATLASS 编译时自动跳过,skip reason 提示以 MINDSPEED_BUILD_CATLASS=1 重新安装;原有 torch_npu 缺失判断保持不变。
  • 文档构建命令修正: README.md 与 docs/zh/install_guide.md 中「从源码构建并安装 TileLang-Ascend wheel」一节的命令由 ./build_wheel_ascend.sh --enable-llvm -v 修正为 ./build_wheel_ascend.sh --enable-llvm,消除参数解析阶段 Unknown option: -v 立即失败的问题。
  • 快速入门文档补充说明: docs/zh/quick_start_ops.md「运行单元测试」章节新增 CATLASS / TileLang 可选组件与用例跳过行为的说明,与新增的跳过机制保持一致。
likedislike
不准确?
atomgit-bot
atomgit-bot
9月14日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
ascend-robotascend-robot成员
9月14日 添加了label:stat/needs-squash
ascend-robotascend-robot成员
9月14日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
9月14日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
docs ✅ 王晓歆, zhizaidicengshehua (2/2) ✅ 王晓歆 (1/1)
repo-Ascend/MindSpeed-Ops ✅ 王晓歆, zhizaidicengshehua (2/2) ✅ 王晓歆 (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

EliasKaslan, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
xmz成员
9月14日 评论:

compile

likedislike
Xxmz成员
9月14日 预合并成功(commit_id: 704024a7835f08c098f2608f5733e25511976a93)
AtlasAccountAtlasAccount成员
9月14日 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

✅ 文档门禁通过!

检查项 检查结果 详情
markdownlint ✅ 已通过 查看详情
link-validity-check ✅ 已通过 查看详情
resource-existence-check ✅ 已通过 查看详情
tag-closed-check ✅ 已通过 查看详情
likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-success
ascend-robot
ascend-robot成员
9月14日 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-success
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

✅ 文档门禁通过!

检查项 检查结果 详情
markdownlint ✅ 已通过 查看详情
link-validity-check ✅ 已通过 查看详情
resource-existence-check ✅ 已通过 查看详情
tag-closed-check ✅ 已通过 查看详情
likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-success
Xxmz成员
9月14日 修改了pull request 的描述
Xxmz成员
9月14日 修改了pull request 的描述
AtlasAccountAtlasAccount成员
9月14日 删除了label:ci-pipeline-running
AtlasAccountAtlasAccount成员
9月14日 添加了label:ci-pipeline-passed
AtlasAccount
AtlasAccount成员
9月14日 评论:
流水线 PR-pipeline_MindSpeed-Ops#736 [ commitID:2c06b4d9 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
恶意代码检查 Antipoison ✅ COMPLETED >>>
编码安全与规范检查 Only_doc_commit ✅ COMPLETED >>>
pre-commit ✅ COMPLETED >>>
开源片段检查 SCA ✅ COMPLETED >>>
开发者测试 UT_MindSpeed_1 ✅ COMPLETED >>>
UT_MindSpeed_2 ✅ COMPLETED >>>
UT_MindSpeed_3 ✅ COMPLETED >>>
UT_MindSpeed_4 ✅ COMPLETED >>>
流水线 PR-pipeline_MindSpeed-Ops ✅ COMPLETED >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, liuzhexu]评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
wangxiaoxin-sherie成员
9月15日 评论:

/approve

likedislike
yangcheng成员
9月15日 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
9月15日 添加了label:approved
ascend-robotascend-robot成员
9月15日 添加了label:lgtm
ascend-robotascend-robot成员
9月15日 合入了pull request