| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 | |
Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !127 merge dev525 into master Refactor tutorial dir, add RMSNorm/SwiGLU/GELU examples, expose SwiGLU API and fix init_buffer Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 将 python/tutorials目录中的样例,移动到了examples目录。 2. 新增了 GELU、SwiGLU、RMSNorm 样例。 3. 新增了 高阶api swiglu。 4. 修改了 init_buffer 的参数名。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#34](https://gitcode.com/cann/pyasc/issues/34) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件。 更新了docs/architecture_introduction.md文件。 更新了docs/developer_guide.md文件。 更新了docs/op_debug_prof.md文件。 更新了docs/pyasc_op_develop_guide.md文件。 更新了docs/python-api/language/generated/asc.language.adv.swiglu.md文件。 更新了docs/quick_start.md文件。 更新了examples/README.md文件。 更新了examples/01_add/README.md文件。 更新了examples/02_add_framework/README.md文件。 更新了examples/03_matmul_mix/README.md文件。 更新了examples/04_matmul_cube_only/README.md文件。 更新了examples/05_matmul_leakyrelu/README.md文件。 更新了examples/06_gelu/README.md文件。 更新了examples/07_swiglu/README.md文件。 更新了examples/08_rmsnorm/README.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增样例 See merge request: cann/pyasc!127 | 1 个月前 |
算子开发示例
本目录包含 pyasc 算子开发端到端示例,覆盖从基础算子到进阶场景的完整开发流程。所有示例均采用 PyTorch 输入输出 Tensor,可直接运行验证。
示例总览
| 算子样例 | 功能描述 |
|---|---|
| 01_add | 实现手动插入同步流水的Add算子。 |
| 02_add_framework | 实现通过Ascend C框架插入流水同步的Add算子。 |
| 03_matmul_mix | 实现MIX模式(包含矩阵计算和矢量计算)下的Matmul算子,计算公式为:C = A * B。 |
| 04_matmul_cube_only | 实现纯Cube模式(只有矩阵计算)的Matmul算子,计算公式为:C = A * B。 |
| 05_matmul_leakyrelu | 实现MatmulLeakyRelu算子,计算公式为:C = A * B + Bias, C = C > 0 ? C : C * 0.001。 |
| 06_gelu | 实现GELU激活函数算子,计算公式为:GELU(x) = x * Φ(x),采用tanh近似。 |
| 07_swiglu | 实现 SwiGLU 激活函数算子,TPipe/TQue 框架双路 VECIN 输入,五步基础向量算子组合完成计算。 |
| 08_rmsnorm | 实现 RMSNorm 归一化算子,TPipe/TQue 框架管理搬运,调用 asc.adv.rmsnorm 高阶 API 完成行归一化计算。 |
推荐学习顺序
建议按以下顺序循序渐进地学习:
- 01_add — 入门首选。理解手动同步流水、数据搬运(Global↔Local)、多核切分(tiling)的基本概念。
- 02_add_framework — 学习 Ascend C 框架提供的 TPipe/TQue/TBuf 机制,体会自动流水同步如何简化开发。
- 03_matmul_mix — 进入矩阵计算领域,掌握 Matmul 高阶 API 的 MIX 模式用法。
- 04_matmul_cube_only — 深入理解纯 Cube 模式下的矩阵分块与 Workspace 配置。
- 05_matmul_leakyrelu — 学习融合算子开发,将矩阵乘与激活函数在单次 Kernel 调用中完成,避免中间数据回传。
- 06_gelu — 学习复杂激活函数的实现,掌握九步算子组合、TBuf 复用和 adv API(tanh)的使用。
- 07_swiglu — 学习 SwiGLU 激活函数:TPipe/TQue 框架同步、双路 VECIN、TBuf 复用、多步组合计算与 PIPE_V 同步。
- 08_rmsnorm — 学习 RMSNorm 归一化:
asc.adv.rmsnorm高阶 API 调用、RmsNormTiling 分块参数配置、整块/尾块处理。
运行示例
环境准备
请先完成环境准备,确保已安装 PyTorch 和 torch_npu 插件。
通用运行命令
cd pyasc/examples/<示例目录>
python3 <示例文件>.py -r [RUN_MODE] -v [SOC_VERSION]
RUN_MODE:Model(仿真器,无需 NPU)或NPU(上板运行)SOC_VERSION:昇腾 AI 处理器型号,如Ascend910B1、Ascend910C
示例
# 仿真器模式运行 Add 示例
python3 examples/01_add/add.py -r Model -v Ascend910B1
# NPU 上板运行 Matmul MIX 示例
python3 examples/03_matmul_mix/matmul_mix.py -r NPU -v Ascend910C