基于 Claude(Anthropic 的 AI 助手)进行华为昇腾(Ascend)Ascend C 算子开发

基于 Claude(Anthropic 的 AI 助手)进行华为昇腾(Ascend)Ascend C 算子开发

基于 Claude(Anthropic 的 AI 助手)进行华为昇腾(Ascend)Ascend C 算子开发**的相关内容。目前社区和华为官方都有相关的实践方案,主要分为以下两类:


一、社区方案:cann-claude-tools

这是一个基于Claude Code CLI的迭代式 CANN Ascend C 算子自动生成工具,由社区开发者维护。

核心特性

特性说明
迭代优化自动迭代 N 次,选择性能最优的代码实现
知识库集成通过 MCP Server 查询 Ascend C API 和算子示例
经验积累自动记录编译错误和优化经验,跨运行复用
自动签名解析从 Python 参考代码自动解析 inputs/outputs/init_params

支持范围

类型算子示例计算单元状态
VectorReLU, Abs, Exp, Add, Mul, SqrtVector Unit✅ 完整支持
CubeMatMul, Conv2D, GEMMCube Unit⚠️ 模板支持(需手动实现 Process)

前置条件

  • CANN 开发环境msopgen、Ascend C 编译工具链、NPU 驱动
  • Claude Code CLInpm install -g @anthropic-ai/claude-code
  • ANTHROPIC_API_KEY:需设置环境变量
  • Python 3.10+

快速开始

# 克隆仓库gitclone https://github.com/pgg3/cann-claude-tools.gitcdcann-claude-tools# 创建虚拟环境(需使用 NPU 环境的 Python)uv venv--python/path/to/npu-python --system-site-packages# 安装依赖(含 MCP server)uvsync--extramcp

二、官方方案:Ascend C Skills(AI Agent 技能体系)

华为昇腾官方推出的Ascend C Skills是一套模块化的 AI Agent 技能体系,支持Cursor + Claude Opus 4.6等模型,可在 1 小时内完成 Vector 算子开发。

9 阶段开发流程

阶段1: ascendc-operator-env-check → 开发环境检测 阶段2: ascendc-operator-project-init → 工程初始化 阶段3: ascendc-operator-design → 需求设计(生成设计文档) 阶段4: ascendc-operator-testcase-gen → 测试用例生成 阶段5: ascendc-operator-code-gen → Ascend C kernel 代码生成 阶段6: ascendc-operator-compile-debug → 编译调试 阶段7: ascendc-operator-precision-eval → 精度验证(≥30例) 阶段8: ascendc-operator-performance-eval → 性能评估(Benchmark) 阶段9: ascendc-operator-doc-gen → 文档生成 阶段10: ascendc-operator-performance-optim → 性能优化闭环

代码仓

  • GitCode: https://gitcode.com/Ascend/agent-skills

三、Ascend C 算子开发基础

无论你使用哪种 AI 辅助方案,了解 Ascend C 的基本编程模型都是必要的。

核心特点

  • C/C++ 原生编程:Ascend C 原生支持 C/C++ 标准规范
  • 屏蔽硬件差异:编程模型屏蔽硬件差异,提高代码通用性
  • API 封装:类库 API 封装,兼顾易用性和高效性
  • 孪生调试:支持 CPU 侧模拟 NPU 侧行为,便于调试

矢量编程三级流水

CopyIn → Compute → CopyOut (搬入) (计算) (搬出)
  • CopyInDataCopy从 GlobalTensor 到 LocalTensor →EnQue放入 VECIN Queue
  • ComputeDeQue从 VECIN 取出 → 矢量计算(如Add)→EnQue放入 VECOUT Queue
  • CopyOutDeQue从 VECOUT 取出 →DataCopy搬回 GlobalTensor

环境准备

# 安装 CANN 开发套件(示例)wget-OAscend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run<下载链接>chmod+x Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.runsudo./Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run--installsource/usr/local/Ascend/ascend-toolkit/set_env.sh

四、总结对比

维度cann-claude-tools(社区)Ascend C Skills(官方)
模型依赖Claude Code CLI支持 Cursor + Claude / 其他模型
自动化程度高(迭代优化 + 经验积累)高(9阶段标准化流程)
算子支持Vector 完整 / Cube 模板Vector 类别已验证
MCP 集成✅ 内置 Ascend C API 查询通过 Agent 技能调用
维护方社区(pgg3)华为昇腾官方

如果你是想快速上手,建议直接尝试Ascend C Skills官方方案;如果你需要深度定制和迭代优化cann-claude-tools的 MCP 知识库集成和经验积累机制会更有优势。需要我针对其中某个方案展开更详细的说明吗?