| Files | Last commit | Last update |
|---|---|---|
本 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 |
| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago |