基于 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 CLInpm 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
(搬入)    (计算)      (搬出)
  • CopyInDataCopy 从 GlobalTensor 到 LocalTensor → EnQue 放入 VECIN Queue
  • ComputeDeQue 从 VECIN 取出 → 矢量计算(如 Add)→ EnQue 放入 VECOUT Queue
  • CopyOutDeQue 从 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 知识库集成和经验积累机制会更有优势。需要我针对其中某个方案展开更详细的说明吗?

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐