| Files | Last commit | Last update |
|---|---|---|
chore: remove operators implementation Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !25 merge chore/remove-initial-vllm-operators into master chore: remove operators implementation Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!25 | 1 month ago | |
feat(engram): migrate remaining operators Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !8 merge master into master feat(engram): migrate remaining operators Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!8 | 1 month ago | |
feat(mhc): migrate operator suite Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge feat/mhc-operators into master feat(mhc): migrate operator suite Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!11 | 1 month ago | |
feat(moe): migrate gate operators Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !9 merge feat/moe-gate-operators into master feat(moe): migrate gate operators Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!9 | 1 month ago | |
fix(sampling): add ops Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !20 merge feat/vllm-operators into master fix(sampling): add ops Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!20 | 1 month ago | |
fix(sampling): add ops Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !20 merge feat/vllm-operators into master fix(sampling): add ops Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!20 | 1 month ago | |
feat(quant): support packed row-major sf stores Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !18 merge feat/quant-operators-update into master feat(quant): support packed row-major sf stores Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!18 | 1 month ago | |
chore: remove operators implementation Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !25 merge chore/remove-initial-vllm-operators into master chore: remove operators implementation Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!25 | 1 month ago | |
fix(sampling): add ops Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !20 merge feat/vllm-operators into master fix(sampling): add ops Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!20 | 1 month ago | |
feat(quant): migrate quant operators Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !16 merge feat/quant-operators into master feat(quant): migrate quant operators Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!16 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
feat(quant): migrate quant operators Co-authored-by: wangliwei12<wangliwei12@huawei.com> # message auto-generated for no-merge-commit merge: !16 merge feat/quant-operators into master feat(quant): migrate quant operators Created-by: wangliwei12 Commit-by: wangliwei12 Merged-by: cann-robot Description: 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : PR功能描述 / 为什么需要这个合入**: 该PR关联的issue (格式为fixes #<issue号>, 或者resolves #<issue号>): fixes # 希望检视人员了解: 改动类型 / Change Type Bug 修复 / Bug Fix [ ✅] 新功能 / New Feature 性能优化 / Performance 代码重构 / Refactoring 文档更新 / Documentation 测试相关 / Test 其它 / Other 测试信息 / Testing [ ✅] 单元测试通过 / UT passed [ ✅] 集成测试通过 / ST passed [ ]✅ 人工验证通过 / Manual verified 检查清单 / Checklist [ ✅] 代码符合规范 / Code follows style guide [ ✅] 测试添加并通过 / Tests added and passed [ ✅] 文档已更新 / Docs updated if needed [ ✅] 无硬编码敏感信息 / No secrets hardcoded [ ✅] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!16 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago | |
本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 Co-authored-by: ChaoyangJi<jichaoyang@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master add ops-tilelang init framework Created-by: ChaoyangJi Commit-by: ChaoyangJi Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: 无。 ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 本 PR 初始化 ops-tilelang 高性能算子仓,为 CANN 社区提供基于 TileLang DSL 的 Ascend 算子开发、测试、性能回归和 wheel 发布基础框架。 项目采用运行时接口与硬件 kernel 分层设计,当前仅支持 Ascend A5 及以上架构。 主要改动 1. 基础工程框架 - 建立 src/ layout Python 工程。 - 发行包名为 ops-tilelang,Python 命名空间为 cann_ops_tilelang。 - 使用 setuptools、setuptools-scm 构建 wheel。 - 支持 Python 3.10、3.11 和 3.12。 - 运行时依赖 torch>=2.1 和 tilelang>=0.1.9。 - torch_npu、CANN Toolkit 和驱动由目标环境提供。 - License 使用 MIT。 - 包导入阶段不初始化 NPU、不编译 kernel、不申请设备内存。 2. Engram 算子 首批提供四个公开 API: - engram_fused_weight - BF16 权重逐元素融合,使用 FP32 输出。 - engram_gate_fwd - 支持动态 token 数。 - 输出 gate 结果及反向所需统计量。 - engram_gate_bwd - 融合计算输入梯度、KV 梯度和分片权重梯度。 - engram_grad_w_reduce - 归并分片权重梯度并原地累加两份 FP32 权重梯度。 算子采用: - PyTorch wrapper 与 *_kernel.py 分层。 - tilelang.jit kernel generator。 - GM/UB 分块、SimdVF、Persistent 调度及多级流水。 - 明确的 device、dtype、shape、stride、contiguous 和输出缓冲区校验。 - 无 CPU/CUDA 静默回退。 3. 测试与性能回归框架 参考 TileKernels-Nightly 迁移并适配完整 pytest 能力: - OPS_TILELANG_TEST_LEVEL=0|1|2 分级参数生成。 - 基于 --seed 和 node ID 的确定性随机数。 - PyTorch reference 数值验证。 - NPU 峰值显存画像和 large_npu_mem 自动分类。 - A5 benchmark JSONL 基线及回归检测。 - -K 参数表达式筛选。 - benchmark improvement 几何平均汇总。 - xdist 多卡绑定及全局 fail-fast。 - TileLang 编译告警汇总。 - 普通显存与大/未知显存测试分阶段执行。 4. 构建、CI 与脚本 新增统一执行入口: - scripts/check.sh - scripts/build_wheel.sh - scripts/run_test.sh - scripts/run_tests.sh - scripts/run_ci.sh scripts/run_ci.sh 支持: - lint - cpu - wheel - npu - benchmark - all 新增 GitHub workflows: - Ruff lint 检查。 - Wheel 构建、安装及元数据验证。 5. 文档 新增并完善: - README:安装、使用、测试、CI 和硬件支持范围。 - 架构说明。 - 完整的新增算子开发流程。 - pytest 插件、benchmark 和显存画像维护指南。 - CONTRIBUTING 贡献规范。 - MIT License。 ### 该PR关联的issue 无。 ### 希望检视人员了解: ops-tilelang的框架代码是否合理和完善。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ √] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [√] 单元测试通过 / UT passed - [ √] 集成测试通过 / ST passed - [ √] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [√] 代码符合规范 / Code follows style guide - [ √] 测试添加并通过 / Tests added and passed - [ √] 文档已更新 / Docs updated if needed - [√ ] 无硬编码敏感信息 / No secrets hardcoded - [ √] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-tilelang!2 | 1 month ago |
测试与性能回归框架
测试框架沿用 TileKernels-Nightly 的完整链路,并收敛为 Ascend/NPU 语义。根 conftest.py 负责在 TileLang 导入前绑定 xdist worker,随后装载以下独立 pytest 插件:
pytest_random_plugin.py:--seed与 node ID 组合,得到逐用例稳定随机种子;pytest_npu_mem_plugin.py:记录峰值 NPU 显存,自动标记large_npu_mem;pytest_benchmark_plugin.py:计时、JSONL 输出、性能基线比较与刷新;pytest_improvement_plugin.py:通过--legacy-table汇总几何平均性能;pytest_xdist_failfast_plugin.py:并行-x时停止全部 worker;pytest_tilelang_warning_plugin.py:在终端汇总 TileLang 编译警告。
测试分级
OPS_TILELANG_TEST_LEVEL 取值为 0、1、2,分别表示核心、默认和完整参数集合。参数生成器位于 tests/testing/generator.py。
OPS_TILELANG_TEST_LEVEL=0 pytest tests/engram -m 'not benchmark'
OPS_TILELANG_TEST_LEVEL=2 pytest tests/engram -m 'not benchmark'
性能基线
benchmark 默认跳过,必须显式传入 --run-benchmark。Ascend 使用 msprof 后端,并将结果归入 a5 集群。基线存储在 tests/<operator>/benchmark/<测试文件>.jsonl。
# 全部 benchmark
pytest -m benchmark --run-benchmark
# 用参数表达式筛选;支持 and/or/not、括号和正则
pytest -m benchmark --run-benchmark -K 'hidden=4096 or hidden=7168'
# 指定输出、阈值和最小绝对变化
pytest -m benchmark --run-benchmark \
--benchmark-output=/tmp/ops-tilelang.jsonl \
--benchmark-regression-threshold=0.10 \
--benchmark-min-delta-us=1.0
# 确认性能变化是预期后刷新分片基线
pytest tests/engram/test_engram_fused_weight.py \
-m benchmark --run-benchmark --refresh-baseline
# Engram gate 前向/反向及梯度归并
pytest tests/engram -m benchmark --run-benchmark --refresh-baseline
--benchmark-verbose 展示扩展列,--legacy-table 展示算子级几何平均汇总。
NPU 显存画像
显存画像存储在 tests/<operator>/npu_mem_profiles/<测试文件>.json。无画像的测试会先归入 large_npu_mem,避免以高并发运行未知用例。
# 运行并刷新选中用例的显存画像
pytest tests/engram/test_engram_fused_weight.py -m 'not benchmark' --refresh-mem
# 刷新整个 Engram 算子族的画像
pytest tests/engram -m 'not benchmark' --refresh-mem
# 只运行尚无画像的测试
pytest --refresh-mem --refresh-mem-missing-only
# 调整大显存阈值或保留原始 JSONL
pytest --refresh-mem --npu-mem-threshold=15000 \
--npu-mem-output=/tmp/ops-tilelang-mem.jsonl
--npu-mem-flush-interval 控制长任务周期写回间隔。
标准执行入口
scripts/run_test.sh 默认分两阶段运行:普通测试每张 NPU 两个 worker,大/未知显存测试每张 NPU 一个 worker。可通过 TILELANG_TEST_WORKERS_PER_NPU 和 TILELANG_TEST_WORKERS_PER_NPU_LARGE 调整。
./scripts/run_test.sh
OPS_TILELANG_RUN_BENCHMARK=1 ./scripts/run_test.sh tests/engram