在 AI 异构计算与芯片开发的浪潮中,昇腾作为华为面向 AI 场景的技术体系,已成为开发者入局硬件级 AI 开发的重要方向。本文基于昇腾初级开发的知识框架,从基础概念、核心工具到实操体验、环境搭建,带你快速掌握昇腾开发的入门逻辑。

一、昇腾基本概念:建立核心认知

昇腾并非单一芯片,而是围绕 AI 计算构建的技术栈,其开发核心围绕 “算子” 展开。

1.1 从 AI 到昇腾的定位

昇腾是衔接人工智能算法与硬件执行的技术体系,核心是通过异构计算能力,为 AI 任务提供高效的硬件加速支持。

1.2 昇腾运行的直观感受昇

昇腾的执行核心是算子—— 开发者可直接感知算子在昇腾硬件上的并行执行效率,以及异构架构对 AI 任务的加速效果。

1.3 昇腾开发的关键关注点

昇腾开发需聚焦算子全生命周期,核心方向包括:

  • 算子的算法设计与数学优化
  • 算子与昇腾硬件的适配(发挥 NPU 性能)
  • 算子的调优(解决性能瓶颈)同时需关注开发挑战,比如固定 Shape 与动态 Shape 的兼容、核函数的高效编写等。

二、Ascend C 概述:昇腾开发的核心语言

Ascend C 是昇腾异构计算架构 CANN 下的核心开发语言,是面向昇腾硬件编程的直接入口。

2.1 CANN 与 Ascend C 的关系

CANN(昇腾异构计算架构)是昇腾的技术底座,而Ascend C 是 CANN 架构下的开发语言,负责对接开发者与昇腾硬件。

2.2 Ascend C 与昇腾硬件的适配

昇腾 AI 处理器基于 SoC 架构,核心计算单元是达芬奇架构的 AICore(包含耦合 / 分离等硬件设计);Ascend C 正是基于这些硬件结构做了抽象封装,降低了硬件编程门槛。

2.3 Ascend C 的核心特点

Ascend C 的设计贴合昇腾硬件的并行能力,核心特性包括:

  • 对 AICore 的抽象封装
  • 支持 SIMD、SPMD 并行编程模型
  • 兼容 C/C++ 标准规范
  • 自动化提升并行调度效率
  • 结构化函数编程范式
  • 支持 CPU/NPU 协同调试

三、昇腾开发初体验:Host-Device 异构编程

昇腾采用 “Host(主机)-Device(昇腾硬件)” 的异构模型:Host 负责任务调度,Device 负责并行计算。

3.1 Device 侧的核心:核函数

核函数是 Device 侧执行的代码单元,是昇腾开发的核心概念,需掌握:

  • 核函数的定义:明确 Device 侧的计算逻辑边界
  • 核函数的编写规则:使用特定的函数 / 变量类型限定符
  • 核函数的调用:由 Host 侧触发 Device 侧执行
  • 入门示例:昇腾版 “Hello World”(通过核函数实现 Device 侧基础输出)

四、昇腾开发环境搭建:覆盖不同场景

昇腾开发环境分为两种类型,适配不同开发阶段:

  1. CPU 环境(纯开发):无需昇腾硬件,可完成核函数编写、语法检查等基础工作
  2. NPU 环境(开发 + 运行):需搭载昇腾 NPU,支持核函数的实际运行与性能调试此外,也可通过华为云开发套件快速获取昇腾环境,降低本地部署成本。

总结

本文覆盖了昇腾初级开发的 “最小知识闭环”:从概念认知到 Ascend C 工具,再到开发初体验与环境搭建,是入门昇腾开发的基础指南。后续可深入算子优化、Ascend C 高级特性等方向,进一步提升开发能力。

2025年昇腾CANN训练营第二季,基于CANN开源开放全场景,推出0基础入门系列、码力全开特辑、开发者案例等专题课程,助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证,即可领取精美证书,完成社区任务更有机会赢取华为手机,平板、开发板等大奖。

报名链接:https://www.hiascend.com/developer/activities/cann20252

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐