원클릭으로
op-samples-reference
CANN 算子高性能样例参考库。在架构设计、代码开发和性能优化阶段,从 cann-samples 仓库中检索相关样例代码与调优实践作为参考。触发:需要参考已有算子实现、查找优化方法示例、或学习特定编程模型时。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
CANN 算子高性能样例参考库。在架构设计、代码开发和性能优化阶段,从 cann-samples 仓库中检索相关样例代码与调优实践作为参考。触发:需要参考已有算子实现、查找优化方法示例、或学习特定编程模型时。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
ops-blas 算子全流程开发技能,协调 agent 团队完成设计->开发->验收->上库的完整开发链路。触发:用户要求开发新算子或实现某 BLAS 接口时。
为 BLAS 算子开发 GTest + CSV 驱动的精度 ST。触发场景: - 新算子 ST、编写 xxx_param.h / xxx_golden.h / xxx_npu_wrapper.h / xxx_test.cpp / xxx_test.csv - 改写旧式 TEST_F 为 CSV 参数化测试 按 6 步执行:分析 API → 写 param → 写 cpu/npu → 写 GTest → CMake → build.sh 验证。
ops-blas 日志框架使用规范。提供 Host 侧 dlog 日志集成模板、日志配置 API 说明和最佳实践。触发:算子开发中需要集成日志、检视日志使用规范、迁移 printf 到 dlog 时。
ops-blas 仓 AscendC 编码规范 + MR 安全编码规则速查索引。 **非开发期常驻上下文**:作为代码提交前的自查工具,按需读取。 触发时机:① 2.x.2 联调前 ② 2.x.3 验收前 ③ 3.1/4.2 代码检视前 ④ reviewer 检视 MR 代码时。 详细规则内容位于 references/ 目录,由调用方按需加载相关文档。
生成 PR 或 Issue 文件,并可通过 GitCode API 直接提交到仓库。仅当用户明确说"提PR"、"创建PR"、"提交Issue"、"推送到PR"、"amend"、"force push"等时才触发,禁止根据上下文推断自动触发。所有操作必须经过用户许可,禁止擅自行动。
BLAS 算子仓编译与验证命令参考。编译算子、运行测试、打包的常用命令。触发:需要编译算子、运行测试、查看 build.sh 用法时。
| name | op-samples-reference |
| description | CANN 算子高性能样例参考库。在架构设计、代码开发和性能优化阶段,从 cann-samples 仓库中检索相关样例代码与调优实践作为参考。触发:需要参考已有算子实现、查找优化方法示例、或学习特定编程模型时。 |
本技能管理 cann-samples 仓库的本地副本,为算子开发各阶段提供高性能实战样例和调优知识库的参考。该仓库持续更新,包含算子领域的最佳实践、优化方法和完整代码示例。
首次使用时,将仓库克隆到 .agent/cann-samples:
git clone https://gitcode.com/cann/cann-samples.git .agent/cann-samples
若本地副本已存在,拉取最新内容:
git -C .agent/cann-samples pull --rebase
每次使用前应检查是否需要更新,确保参考的是最新样例。
cann-samples/
├── Samples/
│ ├── 0_Introduction/ # 入门样例:NPU 执行链路、Vector/Cube 基本编程模型
│ ├── 1_Features/ # 特性样例:解耦底层优化能力
│ │ ├── memory_optimization/ # 访存优化(带宽利用、缓存策略、bank 冲突等)
│ │ ├── instruction_optimization/ # 指令优化(流水并行、多缓冲、权重格式等)
│ │ ├── system_optimization/ # 系统优化(负载均衡、多核调度等)
│ │ └── hardware_features/ # 芯片特性(SIMT、Vector Function、量化类型等)
│ ├── 2_Performance/ # 性能实战:从 Baseline 到极致性能的端到端调优
│ └── 3_Utilities/ # 工具类:仿真、Profiling 等辅助工具样例
├── third_party/ # 外部依赖(Git 子模块)
├── cmake/ # 编译配置
└── CMakeLists.txt # 根 CMake 配置
注意:以上为仓库的大致分类结构,具体包含哪些样例和子目录会随仓库更新而变化。使用时应直接进入对应目录查看当前可用的内容。
在设计 Tiling 策略、Kernel 结构和 Host 流程时,参考样例中的架构模式:
Samples/0_Introduction/ 下的样例,了解 Vector Core 和 Cube Core 的基本 Tiling 策略、数据搬运模式和流水并行结构Samples/2_Performance/ 中查找与目标算子类型相近的样例(如矩阵乘类、归约类、通信类),参考其整体架构设计思路Samples/1_Features/ 各子目录的 README,了解可用的优化手段,在设计方案中提前规划可采用的优化策略Samples/1_Features/hardware_features/simt/ 中的样例,了解 SIMT 架构下的 Tiling 策略、线程映射和 Kernel 结构设计操作方式:进入 .agent/cann-samples/Samples/ 对应子目录,阅读 README.md 了解样例概述,再进入具体样例目录查看设计文档和源码。
在编写 Host/Kernel/Tiling 代码时,参考样例中的具体实现:
Samples/1_Features/hardware_features/ 中的样例,了解 Vector Function 等特定编程模型的代码写法Samples/1_Features/hardware_features/simt/ 中的样例代码,学习 SIMT Kernel 的具体实现方式、线程索引计算、共享内存使用等操作方式:直接阅读 .agent/cann-samples/Samples/ 下目标样例的源码文件(.cpp/.h),关注 kernel 实现、tiling 数据结构和 host 侧调用逻辑。
在进行性能调优和瓶颈分析时,参考样例中的调优实践:
Samples/2_Performance/ 下的 story 类样例通常包含从 baseline 到极限性能的完整调优过程,包括性能分析文档、分步教程和可运行的 recipe 示例Samples/1_Features/memory_optimization/ 中的样例,学习带宽利用率优化、L1 缓存策略、bank 冲突消除等方法Samples/1_Features/instruction_optimization/ 中的样例,学习流水并行度提升、指令预取、权重格式转换等方法Samples/1_Features/system_optimization/ 中的样例,学习多核负载均衡、尾轮优化等策略Samples/3_Utilities/ 中的工具样例,学习 Profiling 和仿真分析方法操作方式:优先阅读 Samples/2_Performance/ 下相关 story 目录中的 docs/ 文档和 README.md,理解调优思路,再对照代码实现学习具体优化手法。
当需要查找参考时,按以下顺序检索:
Samples/ 根目录开始,逐级阅读 README.md 定位相关样例.cpp/.h 源码文件仓库内容持续更新,若在某个分类下未找到相关参考,应检查仓库是否有新增目录或样例。也可查看仓库根目录 README.md 的 Latest News 了解最近新增的内容。
third_party/tensor_api 子模块提供的 Tensor API,参考时需确认子模块已初始化blas-ascendc-coding-rules)为准