| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
修改部分资料错误 | 15 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 | |
Add Linear and fused infer attention examples with required API support Co-authored-by: liranr<2501185979@qq.com> # message auto-generated for no-merge-commit merge: !139 merge dev630 into master Add Linear and fused infer attention examples with required API support Created-by: liranr Commit-by: liranr Merged-by: cann-robot Description: ## 描述 新增了 Linear 和 Fused Infer Attention 样例。 本 PR 同时补充和修正了以下基础能力: 1. **新增了高阶api SoftmaxFlashV2**。 2. **完善 Matmul 配置和代码生成** - 修正 get_mm_config 未正确遍历位置参数和关键字参数的问题。 - 修正 en_vec_nd2_nz 字段读取错误,并补充 double cache、channel split 等配置传递。 - 修正 MDL、Special MDL 和 IBShare 模式下配置模式未正确生效的问题。 - 支持在同一作用域中生成多个名称不同的 Matmul 配置,满足样例 10 同时使用 QK 和 PV 两个 Matmul 对象的需求。 - 支持静态 Matmul tiling 的代码生成,并为相应的 register_matmul 调用选择正确重载。 - 修正 MmadParams.unit_flag 的类型,使其与 Ascend C 接口定义一致。 3. **完善嵌套 JIT 函数处理** - 保留空的返回类型访问状态,支持无返回值 JIT 辅助函数的嵌套调用。 - 样例 10 使用多个 JIT 辅助函数拆分复杂的 Attention 流水,因此需要该能力保证函数声明和调用正确生成。 4. **补充样例与 CI 支持** - 将样例 9 和样例 10加入 NPU presmoke 测试列表。 - 扩展样例路径匹配规则,使两位数编号的样例能够使用 NPU 模式运行。 - 修正样例 7、8 的 Ascend C 构建脚本在未传入参数时访问未定义位置参数的问题。 - 修复样例8的Model仿真模式。 ## 关联的Issue 无。 ## 测试 1. python/test/unit/language/adv/test_activation.py 2. test/Target/AscendC/adv.mlir 3. test/run_presmoke_npu_test.sh ## 文档更新 1. docs/python-api/language/generated/asc.language.adv.softmax_flash_v2.md 2. examples/09_linear/README.md 3. examples/10_fused_infer_attention/README.md ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述:新增 Linear 和 Fused Infer Attention 样例 See merge request: cann/pyasc!139 | 26 天前 |
算子开发示例
本目录包含 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 完成行归一化计算。 |
| 09_linear | 实现 Linear 全连接算子,使用 Matmul 高阶 API 完成 float16 矩阵乘。 |
| 10_fused_infer_attention | 实现 Llama 推理中的因果自注意力。 |
推荐学习顺序
建议按以下顺序循序渐进地学习:
- 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 分块参数配置、整块/尾块处理。 - 09_linear — 学习 Linear 全连接:Matmul 高阶 API、Cube tiling、多核矩阵乘和工作空间配置。
- 10_fused_infer_attention — 综合运用 Matmul、在线 Softmax、多核任务分配和 AIC/AIV 流水,完成 Llama 因果自注意力。
运行示例
环境准备
请先完成环境准备,确保已安装 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