华为昇腾

华为昇腾是国产AI芯片的代表产品,基于自研达芬奇架构, 在训练和推理场景都展现出强大的竞争力。

预计阅读时间:50分钟·难度:中级·更新时间:2024年4月

昇腾概述

发展历程

华为昇腾AI处理器是华为全栈全场景AI解决方案的核心, 从2018年发布至今,已迭代多个版本。

昇腾发展里程碑

  • 2018年:昇腾310发布,主打边缘推理
  • 2019年:昇腾910发布,主打云端训练
  • 2020年:ModelArts全面支持昇腾
  • 2022年:昇腾910B发布,性能大幅提升
  • 2023年:Atlas 900集群规模突破
  • 2024年:新一代昇腾芯片研发中

市场定位

昇腾产品矩阵

昇腾产品定位:

昇腾910系列 (Ascend 910)
├── 定位: 云端训练
├── 场景: 大模型训练、AI超算
├── 竞品: NVIDIA A100/H100
└── 特点: 高算力、高带宽

昇腾310系列 (Ascend 310)
├── 定位: 边缘推理
├── 场景: 视频分析、智能终端
├── 竞品: NVIDIA T4/Jetson
└── 特点: 低功耗、高能效

达芬奇架构

达芬奇架构是华为自研的AI计算架构,采用3D Cube计算引擎, 针对矩阵运算进行了深度优化。

Cube计算引擎

Cube是达芬奇架构的核心,专为矩阵乘法设计。

Cube架构特点

达芬奇架构核心组件:

┌─────────────────────────────────────────────┐
│              AI Core (达芬奇核心)            │
├─────────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────────┐    │
│  │ Cube Engine │    │  Vector Engine  │    │
│  │  矩阵计算   │    │   向量计算      │    │
│  │ 16x16x16    │    │  FP32/FP16/INT8 │    │
│  └─────────────┘    └─────────────────┘    │
│                                             │
│  ┌─────────────┐    ┌─────────────────┐    │
│  │  Scalar     │    │   Memory        │    │
│  │  标量计算   │    │   Unified Buffer│    │
│  └─────────────┘    └─────────────────┘    │
└─────────────────────────────────────────────┘

Cube引擎特点:
- 单周期完成16x16x16矩阵乘累加
- 专为卷积和矩阵运算优化
- 支持多种精度(FP32/FP16/INT8)
- 高效的数据重用机制

Vector计算引擎

Vector引擎功能

  • 激活函数:ReLU、Sigmoid、TanH等
  • 归一化:BatchNorm、LayerNorm
  • 池化操作:MaxPool、AvgPool
  • 向量运算:加减乘除、点积

产品系列

昇腾910系列

昇腾910是面向云端训练的高端AI处理器,性能对标NVIDIA A100。

昇腾910B规格

指标昇腾910BNVIDIA A100
FP16算力376 TFLOPS312 TFLOPS
INT8算力752 TOPS624 TOPS
显存容量64GB HBM2e80GB HBM2e
显存带宽1.6 TB/s2.0 TB/s
功耗310W400W
制程7nm+7nm

昇腾310系列

昇腾310是面向边缘推理的低功耗AI处理器。

昇腾310规格

指标昇腾310
INT8算力22 TOPS
功耗8W
典型场景视频分析、智能摄像头
支持框架MindSpore、TensorFlow、Caffe

软件生态

MindSpore

MindSpore是华为自研的深度学习框架,与昇腾硬件深度优化。

MindSpore特点

MindSpore核心优势:

1. 自动并行
   - 自动切分模型和数据
   - 支持 DP/MP/PP 混合并行
   
2. 全场景支持
   - 云端训练、边缘推理、端侧部署
   - 一次开发,多处部署

3. 科研友好
   - 动态图模式便于调试
   - 静态图模式高效执行

4. 安全可信
   - 数据隐私保护
   - 模型保护机制

CANN

CANN(Compute Architecture for Neural Networks)是昇腾的算子开发框架。

CANN架构层次

  • Ascend CL:底层计算接口
  • Ascend算子库:预置算子集合
  • Graph Engine:计算图优化引擎
  • Runtime:运行时调度

应用实践

昇腾训练示例

# MindSpore在昇腾上训练模型
import mindspore as ms
from mindspore import nn, context
from mindspore.dataset import vision

# 设置昇腾NPU环境
context.set_context(mode=context.GRAPH_MODE, device_target="Ascend")

# 定义模型
class Net(nn.Cell):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 64, 3)
        self.fc = nn.Dense(64*26*26, 10)
        self.relu = nn.ReLU()
    
    def construct(self, x):
        x = self.conv1(x)
        x = self.relu(x)
        x = x.view(-1, 64*26*26)
        x = self.fc(x)
        return x

# 训练
net = Net()
loss_fn = nn.CrossEntropyLoss()
opt = nn.Adam(net.trainable_params())
model = ms.Model(net, loss_fn, opt)

model.train(epoch=10, train_dataset=dataset)

与NVIDIA对比

昇腾 vs NVIDIA 对比

维度昇腾NVIDIA
硬件性能接近A100水平H100领先一代
软件生态快速发展中成熟完善
框架支持MindSpore优先全框架支持
大模型适配持续优化中广泛验证
供应链国产可控受出口限制影响
----