| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: disable CMake linker depfile in GEMM/FA examples Co-authored-by: zhywang<wangzhiyong74@huawei.com> # message auto-generated for no-merge-commit merge: !1615 merge gitcode into master fix: disable CMake linker depfile in GEMM/FA examples Created-by: zhhywang Commit-by: zhywang Merged-by: cann-robot Description: Created-by: zhhywang Commit-by: zhhywang Merged-by: cann-robot Description: 修复 GEMM performance 与 Flash Attention 示例在 CMake 3.27+ 下链接失败的问题,关闭基于链接器的依赖跟踪,使 run.sh 无需手工追加参数即可构建。 ## 描述 12 files changed, 44 insertions(+), 2 deletions(-) - **范围**:kernels/manual/a2a3/gemm_performance、kernels/automode/a2a3/gemm、kernels/manual/common/flash_atten、kernels/manual/a5/flash_atten、kernels/automode/a2a3/flash_atten、kernels/automode/a5/flash_atten 六个示例的 run.sh 与 CMakeLists.txt。 - **问题**:这些示例在 project() 之后才指定 bisheng 编译器,CMake 探测的是系统默认编译器及其链接器。当探测判定链接器支持依赖文件时,CMake 3.27+ 会在链接命令中加入 -Wl,--dependency-file=...,而实际链接由 bisheng 转 cce-ld 执行,cce-ld 不接受该参数,链接阶段报 ld.lld: error: cannot open 并失败。开发者必须手工追加参数才能构建成功。 - **修复**:在六个示例的 CMakeLists.txt 中 project() 之后加入 set(CMAKE_LINK_DEPENDS_USE_LINKER FALSE),与仓内 tests/npu 及 tget_bandwidth 等既有写法保持一致;同时在 run.sh 的 cmake 调用中传入 -DCMAKE_LINK_DEPENDS_USE_LINKER=OFF,脚本已有 CMAKE_EXTRA 数组的加入数组,其余直接写在命令行上。 - **影响**:仅关闭链接阶段由链接器生成依赖文件的能力,编译与链接产物不变;npu 与 sim 两种模式、DEBUG_MODE 与 FIFO_MODE 等既有参数均保持原样。按语言划分的 CMAKE_CXX_LINK_DEPENDS_USE_LINKER 会被 CMake 链接器探测模块覆盖而无效,因此统一使用通用变量。 ## 关联的Issue ## 测试 - gitcode_commit.py precheck --repo . - 结果:PASS - cmake -S kernels/manual/a2a3/gemm_performance -B build/check -DRUN_MODE=npu -DSOC_VERSION=Ascend910B1 -DCMAKE_LINKER_TYPE=LLD,随后检查生成的链接规则 - 结果:PASS,修复前 link.txt 含 --dependency-file,修复后整个构建树不再出现该参数。 - 以同样方式配置六个示例(a5 使用 -DSOC_VERSION=Ascend910_9599),分别覆盖直接调用 cmake 和 run.sh 传参两种方式 - 结果:PASS,构建树中 --dependency-file 出现次数均为 0。 - bash -n kernels/manual/a2a3/gemm_performance/run.sh 等六个脚本的语法检查 - 结果:PASS - 以桩 cmake 执行六个 run.sh,核对实际传出的参数 - 结果:PASS,npu 与 sim 模式下均包含 -DCMAKE_LINK_DEPENDS_USE_LINKER=OFF,且 RUN_MODE、SOC_VERSION、DEBUG_MODE、FIFO_MODE 等原有参数完整保留。 ## 文档更新 无。示例文档中记录的 bash run.sh -r npu -v Ascend910B1 命令修复后可直接使用,无需改动。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!1615 | 7 天前 | |
chore: remove deprecated PTO ISA interfaces Co-authored-by: zhywang<wangzhiyong74@huawei.com> # message auto-generated for no-merge-commit merge: !1453 merge cup into master chore: remove deprecated PTO ISA interfaces Created-by: zhhywang Commit-by: zhywang Merged-by: cann-robot Description: Created-by: zhhywang Commit-by: zhhywang Merged-by: cann-robot Description: Remove deprecated PTO ISA public interfaces, clean residual consumers, and regenerate synchronized ISA documentation and SVG diagrams. ## 描述 382 files changed, 20457 insertions(+), 33280 deletions(-)。 - **范围**:涉及 docs、include、kernels、tests 和 agents/skills。移除清理清单中的 TSYNC、TSUBVIEW、TADDC、TADDSC、TSUBC、TSUBSC、TSUBRELU、TFUSEDMULADDRELU、TADDReluConv、TAddDeqRelu、TPairReduceSum、TGET_SCALE_ADDR、TSUBRELUCONV 公开接口、文档页、测试入口和实现引用。 - **问题**:已删除接口仍残留在公共 API、实现 include、Cost Model、ST 用例、文档索引和生成资产中;复审指出双输出 TEXTRACT 仍调用已删除 TSYNC(events...),文档存在机械替换后的伪接口说明,且部分新增 SVG 缺失或与代码语义不一致。 - **修复**:将内部同步调用改为 detail::PtoWaitEvents(events...);移除残留消费者和悬空测试入口;补充 PtoSyncOp、PtoWaitEvents、PtoSubTileView 内部 helper 边界说明;更新删除接口迁移说明;修复 gen_isa_indexes.py 和 gen_isa_svgs.py,重新生成 ISA README、虚拟手册矩阵和 14 个新增 SVG,并补齐 FMA 旧 dst 输入绘制。 - **影响**:上述接口不再作为公开 PTO ISA/API 暴露;仓内保留的同步等待和子视图逻辑仅作为内部实现 helper 使用;文档生成结果与 manifest、代码和已删除接口范围保持同步。 ## 关联的Issue 无 ## 测试 - python3 -m py_compile docs/tools/gen_isa_svgs.py - 结果:PASS - python3 docs/tools/gen_isa_svgs.py && python3 docs/tools/gen_isa_svgs.py --check - 结果:PASS - python3 docs/tools/gen_isa_indexes.py --check - 结果:PASS - python3 docs/tools/gen_virtual_manual_matrix.py --check - 结果:PASS - git diff --check && git diff --cached --check - 结果:PASS - rg -n "diagram template not implemented|\(implementation-defined\)|op\(src|set transform mode|backend mode|src0 \* dst \+ src1|src0 \* src1 \+ dst" docs/figures/isa/{SYNCALL,SET_QUANT_SCALAR,SET_QUANT_VECTOR,TAXPY,TPREFETCH_ASYNC,TMATMUL_MX_HIF4,TQUANT_DN,TQUANT_HIF4,TDEQUANT,THISTOGRAM,TALLOC,TPUSH,TPOP,TFREE}.svg - 结果:PASS,未发现占位文案或旧错误公式残留 - bash -n tests/run_st.sh - 结果:PASS - cmake --build tests/npu/a2a3/src/st/build --target textract_ndto2xnz_kernel - 结果:PASS - cmake --build tests/npu/a5/src/st/build --target textract_ndto2xnz_kernel_mix - 结果:PASS ## 文档更新 已更新 ISA README、PTOISA 索引、mkdocs 导航、虚拟手册指令族矩阵、删除接口迁移说明、相关编程文档和 ISA SVG 图示。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:接口清理 See merge request: cann/pto-isa!1453 | 22 天前 | |
add comm domain interface Co-authored-by: echo_stone<liulei281@huawei.com> # message auto-generated for no-merge-commit merge: !1364 merge commDomain into master add comm domain interface Created-by: echo_stone Commit-by: echo_stone Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!1364 | 1 个月前 | |
docs(a5): add license header to dispatch_mega_combine run.sh Co-authored-by: ltr123<lengtianran@huawei.com> # message auto-generated for no-merge-commit merge: !1626 merge tianti0909 into master docs(a5): add license header to dispatch_mega_combine run.sh Created-by: ltr123 Commit-by: ltr123 Merged-by: cann-robot Description: ## Summary - Add the CANN Open Software License header to the A5 dispatch_mega_combine run script. - Align the header format with the corresponding A2A3 script. ## Test plan - git diff --check - IDE lint check See merge request: cann/pto-isa!1626 | 6 天前 | |
Document Repair Co-authored-by: SherwinBai<baixiaorui1@h-partners.com> # message auto-generated for no-merge-commit merge: !428 merge feature/docs-enhancement into master Document Repair Created-by: SherwinBai Commit-by: SherwinBai Merged-by: cann-robot Description: ## 描述 1. 重新梳理getting-started快速开始中介绍逻辑 2. 根目录README中构建命令补充说明,增加解释 3. TROWPROD指令补充图示 4. 修复指令接口中文文档 约束部分存在很多未翻译内容 5. kernels/README_zh.md-自定义脚手架跳转路径修复 6. 修复指令图示 ## 类型标签 - [ ] 文档更新 See merge request: cann/pto-isa!428 | 6 个月前 | |
Document Repair Co-authored-by: SherwinBai<baixiaorui1@h-partners.com> # message auto-generated for no-merge-commit merge: !428 merge feature/docs-enhancement into master Document Repair Created-by: SherwinBai Commit-by: SherwinBai Merged-by: cann-robot Description: ## 描述 1. 重新梳理getting-started快速开始中介绍逻辑 2. 根目录README中构建命令补充说明,增加解释 3. TROWPROD指令补充图示 4. 修复指令接口中文文档 约束部分存在很多未翻译内容 5. kernels/README_zh.md-自定义脚手架跳转路径修复 6. 修复指令图示 ## 类型标签 - [ ] 文档更新 See merge request: cann/pto-isa!428 | 6 个月前 | |
[fix] run_kernels.sh添加$3空值判断并修复路径风险 Co-authored-by: zoujiangjiang<zoujiangjiang@h-partners.com> # message auto-generated for no-merge-commit merge: !975 merge fix/run_kernels.sh-path-safety into master [fix] run_kernels.sh添加$3空值判断并修复路径风险 Created-by: zoujiangjiang Commit-by: zoujiangjiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [fix] run_kernels.sh添加$3空值判断并修复路径风险 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!975 | 3 个月前 |
Kernels
本目录包含与 PTO Tile Lib 配套的 kernel / operator 实现。
多数子目录都是自包含的小工程(kernel + host + 脚本),通常会包含自己的 README.md、CMakeLists.txt 与 run.sh,便于独立发现与运行。
从哪里开始
目录结构
manual/:手工调优 kernels(显式管理 buffer / 同步 / 流水线,偏 NPU)manual/a2a3/:A2/A3 平台 kernelsmanual/a2a3/gemm_performance/:高性能 GEMM 示例manual/a2a3/conv2d_forward/:Conv2D 前向 kernel 示例manual/a2a3/topk/:TopK kernel 示例
manual/a5/:A5 平台 kernelsmanual/a5/flash_atten/:A5 平台 Flash-Attention kernelmanual/a5/matmul_mxfp4_performance/:MXFP4 矩阵乘法示例manual/a5/matmul_mxfp8_performance/:MXFP8 矩阵乘法示例
manual/common/:跨平台 kernelsmanual/common/flash_atten/:Flash-Attention kernel(A2/A3/A5)
custom/:自定义 kernel / operator 扩展的示例与脚手架
备注
- 公共接口在
include/;测试在tests/。 - 新增 kernel 工程时,建议配套一个简短的
README.md和一个run.sh,方便统一发现与运行。