国内AI芯片
学习目标
- 了解华为昇腾系列芯片的达芬奇架构和产品规格
- 掌握昇腾910和昇腾310的核心技术特点
- 理解CANN软件栈的结构和功能
- 了解寒武纪MLU系列产品和MLU03架构
- 了解燧原科技、壁仞科技等其他国产AI芯片
章节导言
随着人工智能技术在国内的蓬勃发展,国产AI芯片产业也取得了长足的进步。华为昇腾系列芯片已经成为国内AI算力的重要支柱,寒武纪作为AI芯片的先驱企业也有深厚的技术积累。此外的卢科技、壁仞科技、燧原科技等新兴企业也在各自领域展现出不俗的实力。
本章将详细介绍国内主流AI芯片的架构特点和产品规格,重点分析华为昇腾和寒武纪两大代表性企业的技术路线。同时,我们也将介绍其他国产AI芯片厂商的产品和特色。
通过本章学习,读者将全面了解国内AI芯片产业的技术现状和发展趋势,理解国产AI芯片在架构设计和软件生态方面的创新探索。
5.1 华为昇腾概述
5.1.1 华为昇腾发展历程
华为昇腾(Ascend)是华为公司推出的AI处理器系列,标志着华为在AI芯片领域的全面布局。
发展历程:
- 2018年:发布昇腾310(边缘推理)和昇腾910(云端训练)
- 2019年:推出Atlas系列人工智能计算平台
- 2020年:发布昇腾AI处理器迭代版本
- 2021年及以后:持续丰富产品形态,完善软件生态
昇腾产品体系:
昇腾系列
├── 昇腾910:云端训练旗舰
├── 昇腾310:边缘推理主力
├── 昇腾AI加速模块
├── Atlas服务器产品
└── CANN软件栈
5.1.2 达芬奇架构
昇腾芯片采用华为自研的达芬奇(Da Vinci)架构,这是一种专门为AI计算设计的异构架构。
达芬奇架构特点:
- 3D Cube矩阵乘法单元
- 针对矩阵运算优化
- 高吞吐量的卷积计算
-
存算一体设计
-
向量计算单元
- 支持FP16/INT8/INT4等多种精度
- 激活函数计算
-
池化等操作
-
标量计算单元
- 控制流处理
- 地址运算
- 复杂算法实现
达芬奇架构优势:
- 高能效比:每瓦性能优异
- 灵活适配:从边缘到云端
- 统一架构:不同产品线共享
- 持续演进:架构迭代优化
5.2 昇腾910
5.2.1 昇腾910规格
昇腾910是华为面向云端训练场景推出的旗舰AI处理器。
核心规格:
| 参数 | 昇腾910 |
|---|---|
| 工艺 | 7nm |
| 算力 (FP16) | 320 TFLOPS |
| 算力 (INT8) | 640 TOPS |
| HBM | 32 GB |
| HBM带宽 | 1,200 GB/s |
| 功耗 | 310W |
| 芯片面积 | - |
5.2.2 昇腾910架构特点
达芬奇Core架构
昇腾910内置多个达芬奇Core,每个Core包含:
- 1个Cube矩阵乘法单元:16×16×16矩阵运算
- 多个向量计算单元
- 标量计算单元
- 本地存储单元
Cube矩阵乘法单元
Cube是昇腾的核心计算单元:
- 三维矩阵运算:Cube(M, K, N)
- 一次完成大矩阵乘法
- 极高计算效率
Cube工作示意:
输入A [M×K] × 输入B [K×N]
↓
矩阵乘法单元
↓
输出C [M×N]
功耗控制
昇腾910在310W TDP下实现320 TFLOPS FP16算力,能效比达到1 TFLOPS/W,接近主流GPU水平。
5.2.3 昇腾910应用
Atlas 900 AI集群
Atlas 900是华为面向AI训练推出的集群产品:
- 基于昇腾910处理器
- 液冷散热设计
- PUE < 1.1
- 用于大规模模型训练
应用场景
- 大规模深度学习模型训练
- 自然语言处理
- 计算机视觉
- 科学计算
5.3 昇腾310
5.3.1 昇腾310规格
昇腾310是华为面向边缘推理场景推出的AI处理器。
核心规格:
| 参数 | 昇腾310 |
|---|---|
| 工艺 | 7nm |
| 算力 (FP16) | 22 TFLOPS |
| 算力 (INT8) | 88 TOPS |
| 功耗 | 8W (典型) |
| 精度支持 | FP16/INT8/INT4 |
5.3.2 昇腾310架构特点
低功耗设计
昇腾310针对边缘场景优化:
- 8W典型功耗
- 无需主动散热
- 适应边缘部署
多精度支持
- FP16:适合高精度推理
- INT8:平衡精度与性能
- INT4:极致性能压缩
统一架构
与昇腾910共享达芬奇架构:
- 统一工具链
- 模型可迁移
- 开发成本低
5.3.3 昇腾310应用
Atlas产品系列
| 产品 | 应用场景 |
|---|---|
| Atlas 200 | 嵌入式模块 |
| Atlas 300 | 推理卡 |
| Atlas 500 | 边缘小站 |
| Atlas 800 | 推理服务器 |
典型应用
- 智能摄像头
- 自动驾驶
- 工业检测
- 无人机
5.4 CANN软件栈
5.4.1 CANN概述
CANN(Compute Architecture for Neural Networks)是华为针对昇腾芯片推出的异构计算架构。
CANN定位
CANN是连接上层AI框架与底层硬件的桥梁:
AI框架 (TensorFlow/PyTorch/MindSpore)
↓
昇腾计算语言 (Ascend C)
↓
CANN异构计算架构
↓
昇腾AI处理器硬件
CANN核心功能
- 计算资源抽象
- 统一API接口
- 硬件资源管理
-
任务调度
-
算子编译优化
- 算子融合
- 图优化
-
内存优化
-
运行时管理
- 内存管理
- 任务管理
- 异常处理
5.4.2 CANN架构层次
架构分层
┌─────────────────────────────────────┐
│ AI应用层 (CANN High-Level API) │
├─────────────────────────────────────┤
│ 图编译层 (GE/ACL) │
├─────────────────────────────────────┤
│ 算子编译框架 (TBE/TIK) │
├─────────────────────────────────────┤
│ 驱动层 (CCE/Driver) │
└─────────────────────────────────────┘
核心组件
| 组件 | 功能 |
|---|---|
| GE | 图引擎,神经网络图编译优化 |
| ACL | 昇腾计算语言,API接口 |
| TBE | 算子开发环境 |
| CCE | 芯片执行引擎 |
5.4.3 Ascend C编程
Ascend C是面向昇腾的C/C++编程接口。
基本概念
// Ascend C示例:向量加法
#include "acl/acl.h"
// 创建算子类型
aclOpType vecAdd = "VecAdd";
// 设置输入输出
aclTensor* inputX = aclCreateTensor(...);
aclTensor* inputY = aclCreateTensor(...);
aclTensor* outputZ = aclCreateTensor(...);
// 执行算子
aclExecuteOp(vecAdd, {inputX, inputY}, {outputZ}, ...);
TBE算子开发
TBE(Tensor Billing Engine)用于开发自定义算子:
# TBE DSL示例
import te.lang.cce
from te import tvm
def vec_add_compute(x, y):
# 定义计算过程
res = te.lang.cce.vadd(x, y)
return res
# 调度和编译
with tvm.target.cce():
res = vec_add_compute(x, y)
sch = te.create_schedule(res.op)
5.4.4 MindSpore支持
华为自研的MindSpore框架与昇腾芯片深度集成:
- 原生支持昇腾硬件
- 自动算子融合
- 分布式训练优化
- 端云统一架构
与其他框架对比
| 框架 | 昇腾支持 | 特点 |
|---|---|---|
| MindSpore | 原生 | 华为自研,端云协同 |
| PyTorch | 适配 | 社区版本+华为插件 |
| TensorFlow | 适配 | 社区版本+华为插件 |
5.5 寒武纪MLU
5.5.1 寒武纪概述
中科寒武纪科技股份有限公司成立于2016年,是国内AI芯片领域的先驱企业。寒武纪的名字由"寒武纪"(地质时代)和"硅"组合而成,寓意智能时代的开启。
发展历程
- 2016年:成立,发布首款处理器IP 1A
- 2017年:发布1H处理器IP
- 2018年:发布MLU100云端芯片
- 2019年:发布MLU270推理芯片
- 2021年:发布MLU370训练芯片
- 2023年及以后:持续迭代MLU03架构
产品体系
寒武纪产品
├── 终端IP:1A, 1H, 1M
├── 边缘端:MLU220
├── 云端推理:MLU270, MLU370
├── 云端训练:MLU290, MLU370
└── 软件栈:Cambricon Neuware
5.5.2 MLU03架构
MLU03是寒武纪最新一代处理器架构,代表了寒武纪在AI芯片领域的技术积累。
核心设计
MLU03架构的核心特点:
- MLU Core + Memory Core
- MLU Core:计算核心
- Memory Core:存储控制核心
-
4+1核心集群
-
Cluster结构
- 4个MLU Core + 1个Memory Core
- 共享SRAM
-
高效核间通信
-
多级存储
- 片上NRAM/WRAM
- Cluster级SRAM
- 片外DRAM
MLU03 Cluster结构
Cluster (4+1)
├── MLU Core 0: 计算单元
├── MLU Core 1: 计算单元
├── MLU Core 2: 计算单元
├── MLU Core 3: 计算单元
├── Memory Core: 存储控制
└── Shared SRAM: 共享存储
5.5.3 MLU370
MLU370是寒武纪面向数据中心推出的AI加速卡。
产品规格
| 参数 | MLU370 |
|---|---|
| 工艺 | 7nm |
| 算力 (FP16) | 256 TFLOPS |
| 内存 | 64 GB HBM |
| 功耗 | 250W |
| 互联 | MLU-Link |
技术特点
- MLU03核心架构
- 4nm工艺
- MLU-Link高速互联
- BANG C编程
5.5.4 MLU软件栈
寒武纪提供完整的软件栈支持。
Cambricon Neuware
Neuware是寒武纪的基础软件平台:
| 组件 | 功能 |
|---|---|
| BANG C | 编程语言 |
| CNNL | 算子库 |
| CNCL | 通信库 |
| MagicMind | 推理引擎 |
| CNStudio | 开发工具链 |
BANG C
BANG C是寒武纪面向MLU硬件的编程语言:
// BANG C示例:矩阵乘法
__nram__ float nram_dst[M * N];
__nram__ int16_t nram_src0[M * K];
__nram__ int8_t nram_src1[K * N];
// 使用bang_matmul intrinsic
__bang_matmul(nram_dst, nram_src0, nram_src1, M, K, N, POS);
CNNL
CNNL(CAMBricon CNN Library)是寒武纪的算子库:
- 卷积、池化、激活
- 矩阵运算
- 循环网络算子
- 优化实现
MagicMind
MagicMind是寒武纪的推理引擎:
- 模型优化
- 图编译
- 推理部署
- 性能调优
5.6 燧原科技
5.6.1 燧原概述
燧原科技成立于2018年,专注于AI芯片和系统的研发。
产品定位
- 云端训练和推理
- 数据中心市场
- 自主技术路线
5.6.2 邃思芯片
燧原自研的邃思(DTU)芯片系列。
邃思2.0
| 参数 | 邃思2.0 |
|---|---|
| 工艺 | 7nm |
| 算力 | 160 TFLOPS (FP16) |
| 内存 | 32 GB HBM2e |
| 功耗 | 280W |
架构特点
- 自研GCU-FA(通用计算单元阵列)
- 片上高带宽存储
- 可扩展互联
5.6.3 燧原产品
云燧i20
面向推理场景:
- 单槽位设计
- 高能效比
- 适配主流框架
云燧T20/T21
面向训练场景:
- T20: 200 TFLOPS
- T21: 更高算力
- 支持大规模集群
5.7 壁仞科技
5.7.1 壁仞概述
壁仞科技成立于2019年,由前英伟达和AMD高管创立。
发展理念
- 原创芯片架构
- 通用GPU路线
- 生态建设
5.7.2 BR100
壁仞科技的旗舰产品BR100。
产品规格
| 参数 | BR100 |
|---|---|
| 工艺 | 7nm |
| 算力 (FP16) | 512 TFLOPS |
| 内存 | 64 GB HBM2e |
| 功耗 | 300W |
创新点
- 自研Biren Instruction Set
- 通用并行计算架构
- 支持多种精度
5.7.3 生态建设
壁仞科技重视软件生态:
- BIRENSUPA编程平台
- 支持主流AI框架
- 开发者社区建设
5.8 其他国产AI芯片
5.8.1 摩尔线程
摩尔线程成立于2020年,专注于GPU芯片设计。
产品
- MTT S60:桌面级GPU
- MTT S2000:数据中心GPU
- 桌面和服务器市场并重
5.8.2 平头哥(含光
阿里巴巴旗下平头哥的AI芯片。
含光800
| 参数 | 含光800 |
|---|---|
| 工艺 | 12nm |
| 算力 | 78,563 TOPS (INT8) |
| 功耗 | 500mW |
| 应用 | 阿里云推理 |
5.8.3 百度昆仑芯
百度自研AI芯片。
昆仑芯2
| 参数 | 昆仑芯2 |
|---|---|
| 工艺 | 7nm |
| 算力 | 256 TOPS (INT8) |
| 应用 | 云端推理 |
5.9 国产AI芯片软件生态对比
5.9.1 软件栈对比
| 厂商 | 编程语言 | 算子库 | 框架支持 |
|---|---|---|---|
| 华为 | Ascend C | CANN | MindSpore/PyTorch/TF |
| 寒武纪 | BANG C | CNNL | PyTorch/ONNX |
| 燧原 | - | - | 主流框架 |
| 壁仞 | BIRENSUPA | - | 建设中 |
5.9.2 生态建设挑战
国产AI芯片软件生态面临的挑战:
- 框架适配
- 主流框架适配工作量大
- 算子兼容性
-
性能调优
-
开发者社区
- 生态起步晚
- 开发者资源有限
-
缺乏标杆项目
-
工具链成熟度
- 编译器优化能力
- 调试工具
- 性能分析工具
5.9.3 发展建议
推动国产AI芯片生态发展的建议:
- 开放合作
- 拥抱开源
- 参与标准制定
-
社区共建
-
聚焦场景
- 选择重点行业
- 打造标杆案例
-
逐步扩展
-
软硬协同
- 硬件迭代配合软件优化
- 用户反馈驱动发展
- 持续投入
本章小结
本章介绍了国内主要AI芯片厂商和产品:
- 华为昇腾:
- 达芬奇架构统一设计
- 昇腾910云端训练旗舰
- 昇腾310边缘推理主力
-
CANN软件栈完整生态
-
寒武纪MLU:
- MLU03核心架构
- MLU Core + Memory Core设计
- BANG C编程语言
-
Cambricon Neuware软件栈
-
其他国产芯片:
- 燧原科技邃思
- 壁仞科技BR100
- 摩尔线程、平头哥、百度昆仑等
国产AI芯片在技术进步的同时,软件生态建设仍是关键挑战。需要持续投入、开放合作,构建完善的开发者社区和应用生态。
思考与练习
-
昇腾分析:分析华为昇腾采用的达芬奇架构与NVIDIA GPU架构的核心区别。达芬奇架构的3D Cube矩阵乘法单元是如何实现高效AI计算的?
-
软件生态:对比分析华为CANN与NVIDIA CUDA软件栈的功能层次和特点。为什么软件生态是AI芯片成功的关键因素?
-
寒武纪MLU03:分析寒武纪MLU03架构中MLU Core和Memory Core的设计理念。这种架构与GPU的SIMT架构有什么本质区别?
-
差异化竞争:比较国内主要AI芯片厂商(昇腾、寒武纪、燧原、壁仞等)的技术路线差异和各自的优势领域。
-
生态建设思考:分析国产AI芯片在软件生态建设方面面临的主要挑战,并提出可能的解决策略。
-
技术趋势:展望未来5年国内AI芯片技术的发展趋势,可能出现哪些技术突破和创新应用?