基于 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 |
支持范围
| 类型 | 算子示例 | 计算单元 | 状态 |
|---|---|---|---|
| Vector | ReLU, Abs, Exp, Add, Mul, Sqrt | Vector Unit | ✅ 完整支持 |
| Cube | MatMul, Conv2D, GEMM | Cube Unit | ⚠️ 模板支持(需手动实现 Process) |
前置条件
- CANN 开发环境:
msopgen、Ascend C 编译工具链、NPU 驱动 - Claude Code CLI:
npm install -g @anthropic-ai/claude-code - ANTHROPIC_API_KEY:需设置环境变量
- Python 3.10+
快速开始
# 克隆仓库
git clone https://github.com/pgg3/cann-claude-tools.git
cd cann-claude-tools
# 创建虚拟环境(需使用 NPU 环境的 Python)
uv venv --python /path/to/npu-python --system-site-packages
# 安装依赖(含 MCP server)
uv sync --extra mcp
二、官方方案: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
(搬入) (计算) (搬出)
- CopyIn:
DataCopy从 GlobalTensor 到 LocalTensor →EnQue放入 VECIN Queue - Compute:
DeQue从 VECIN 取出 → 矢量计算(如Add)→EnQue放入 VECOUT Queue - CopyOut:
DeQue从 VECOUT 取出 →DataCopy搬回 GlobalTensor
环境准备
# 安装 CANN 开发套件(示例)
wget -O Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run <下载链接>
chmod +x Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run
sudo ./Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run --install
source /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 知识库集成和经验积累机制会更有优势。需要我针对其中某个方案展开更详细的说明吗?
更多推荐


所有评论(0)