1 总览

Ascend 全栈 AI软硬件平台如图1所示。昇腾全栈 AI 软硬件平台是基于昇腾系列处理器和基础软件构建的全栈 AI 计算基础设施、行业应用及服务,平台一共分为五层,自底向上依次为 Atlas 系列硬件、异构计算架构、AI 框架、应用使能和行业应用。

图1 Ascend 全栈 AI软硬件平台

2 Atlas 硬件平台

Atlas 系列硬件基于昇腾系列 AI 处理器(Ascend310 用于推理场景,Ascend910 用于训练场景),通过模块、标卡、小站、服务器、集群等丰富的产品形态,打造面向 “端、边、云” 的全场景 AI 基础设施方案。图2 Atlas 设备

Ascend 310: 是一款高效、灵活、可编程的AI处理器。典型配置下可输出16个TOPS INT8和8个TOPS FP16,功耗仅8W。华为Ascend 310采用华为自研的达芬奇架构,集成多种计算单元,扩展了应用范围。人工智能芯片。通过全AI业务流程的加速,AI系统整体性能大幅提升,部署成本大幅降低。

  • 架构:DaVinci
  • AI Core: 2
  • 计算能力:16 TOPS INT8 8 TFLOPS FP16

Ascend 910: 是华为基于昇腾AI处理器逻辑架构,面向AI模型训练任务打造的处理器。设计之初可以提供512 TOPS 整数精度算力,经过软件架构层面的优化可以达到640 TOPS。

  • 架构:DaVinci
  • AI Core: 32
  • 计算能力:512 TOPS INT8 256 TFLOPS FP16

Atlas 200 AI 加速器模块(型号:3000): 集成了 Ascend 310 人工智能处理器,可在设备端实现视频分析和图像分类。Atlas 200 广泛应用于智能相机、机器人和无人机等人工智能场景。

  • 处理器: Ascend 310
  • 计算能力: 22/16/8 TOPS INT8 11/8/4 TFLOPS FP16
  • 存储: LPDDR4X, 8 GB/4 GB, 带宽 51.2 GB/s

Atlas 200 DK AI 开发套件(型号:3000): 是一款高性能 AI 应用开发板,集成了 Ascend 310 AI 处理器,便于快速开发和验证。它已被广泛应用于开发人员解决方案验证等场景。

  • 处理器: Ascend 310
  • 计算能力: 22/16/8 TOPS INT8 11/8/4 TFLOPS FP16
  • 存储: LPDDR4X, 8 GB/4 GB, 带宽 51.2 GB/s

Atlas 300I AI 推理卡(型号: 3000): 采用 Ascend 310 AI 处理器,具有卓越的 AI 推理性能。单卡可提供高达 88 TOPS INT8 的计算能力,并支持 80 通道实时高清视频分析,是智慧城市、交通和金融等智能场景的理想选择。

  • 处理器: Ascend 310
  • 计算能力: 88 TOPS INT8 44 TFLOPS FP16
  • 存储: LPDDR4X, 32 GB, 带宽 204.8 GB/s

Atlas 300T AI 训练卡(型号: 9000): 基于 Ascend 910 AI 处理器,可与服务器配合使用,为数据中心提供强大的计算能力。单卡可提供 280 TFLOPS FP16 计算能力,加速深度学习和训练。Atlas 300T 具有最高的计算能力、集成度和带宽,可满足互联网、运营商和金融行业的人工智能培训和高性能计算需求。

  • 处理器: Ascend 910
  • 计算能力: 280 TFLOPS FP16 (Pro) 256 TFLOPS FP16
  • 存储: 32 GB HBM 16 GB DDR4

Atlas 500 AI 边缘站(型号:3000): 专为边缘应用而设计。它具有体积小巧、计算性能卓越、环境适应性强、易于维护、云边协作等特点,可广泛部署于边缘。Atlas 500 AI 边缘站可满足安防、交通、社区、校园、商场和超市等场景的复杂需求。

  • 处理器: Ascend 310
  • 计算能力: 22/16 TOPS INT8 11/8 TFLOPS FP16
  • 存储: LPDDR4X, 8 GB/4 GB, 带宽 51.2 GB/s

Atlas 500 Pro AI 边缘服务器(型号:3000): 专为边缘应用而设计。它具有卓越的计算性能、强大的环境适应能力、易于维护和云边协作等特点。它可广泛部署在边缘,以满足安防、交通、社区、校园、商场和超市等复杂场景和环境中的应用需求。

  • 处理器: 4 * Atlas 300I AI 推理卡
  • 计算能力: 352 TOPS INT8

Atlas 800 AI 推理服务器(型号:3000): 采用 Ascend 310 处理器,最多可支持 8 个 Atlas 300I 推理卡,提供强大的实时推理功能。它广泛应用于数据中心的人工智能推理。

  • 处理器:8 * Atlas 300I AI 推理卡
  • 计算能力: 704 TOPS INT8

Atlas 800 AI 训练服务器(型号:9000): 采用鲲鹏 920 和 Ascend 910 处理器。它具有业界最高的计算密度、超高能效和高网络带宽。该服务器广泛应用于深度学习模型开发和训练场景,是智慧城市、智慧医疗、天文探测、石油勘探等计算密集型行业的理想选择。

  • 处理器: 8 * Ascend 910
  • 计算能力: 2.24 PFLOPS FP16 2 PFLOPS FP16
  • 存储: 8 * 32 GB HBM

Atlas 900 AI PoD(型号:9000): 基于华为 Ascend 910 和鲲鹏 920 处理器的人工智能训练集群的基本单元。它具有强大的人工智能计算能力、最佳的人工智能能效和最佳的人工智能可扩展性。该集群基本单元广泛应用于深度学习模型开发和训练场景,是智慧城市、智慧医疗、天文探测、石油勘探等计算密集型行业的理想选择。

  • 处理器: 64 * Ascend 910
  • 计算能力: 20.48 PFLOPS FP16
  • 存储: 2048 GB HBM

3 CANN 异构计算架构

异构计算架构 CANN 在平台中起到承上启下的作用,对标英伟达的 CUDA 和 CuDNN,提供高效易用的编程接口,对上支持多种 AI 框架(MindSpore、PyTorch 等),对下服务 AI 处理器,是提升昇腾 AI 处理器计算效率的关键平台,包括各种引擎、编译器、执行器、算子库。由于其需要负责将算子分配到对应的硬件上,因此叫做异构。对CANN从不同的角度观察可以形成五层逻辑结构或者三层逻辑结构。

3.1 五层逻辑结构

图3 CANN 五层逻辑结构

昇腾计算语言: 昇腾计算语言是昇腾计算开放编程框架,是对低层昇腾计算服务接口的封装。它提供 Device(设备)管理、Context(上下文)管理、Stream(流)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、Graph(图)管理等 API 库,供用户开发人工智能应用调用。

昇腾计算服务层: 本层主要提供昇腾计算库,例如神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等;昇腾计算调优引擎库,例如算子调优、子图调优、梯度调优、模型压缩以及 AI 框架适配器。

昇腾计算编译层: 本层主要提供图编译器(Graph Compiler)和 TBE(Tensor Boost Engine)算子开发支持。前者将用户输入中间表达(Intermediate Representation,IR)的计算图编译成 NPU 运行的模型。后者提供用户开发自定义算子所需的工具。

昇腾计算执行层: 本层负责模型和算子的执行,提供如运行时(Runtime)库(执行内存分配、模型管理、数据收发等)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。

昇腾计算基础层: 本层主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机 - 设备通信(Host Device Communication,HDC)等。

3.2 三层逻辑结构

图4 CANN 三层逻辑架构

3.2.1 应用层

包括基于 Ascend 平台开发的各种应用,以及 Ascend 提供给用户进行算法开发、调优的应用类工具。

推理应用: 基于 AscendCL 提供的 API 构建推理应用

AI 框架: 包括 TensorFlow、Caffe、MindSpore 以及第三方框架

模型小型化工具: 实现对模型进行量化,加速模型

AutoML 工具: 基于 MindSpore 自动学习工具,根据昇腾芯片特点进行搜索生成亲和性网络,充分发挥昇腾性能

加速库: 基于 AscendCL 构建的加速库(当前支持 Blas 加速库)

MindStudio: 提供给开发者的集成开发环境和调试工具,可以通过MindStudio进行离线模型转换、离线推理算法应用开发调试、算法调试、自定义算子开发和调试、日志查看、性能调优、系统故障查看等

3.2.2 芯片使能层

实现解决方案对外能力开放,以及基于计算图的业务流的控制和运行。

AscendCL 昇腾计算语言库: 开放编程框架,提供 Device/Context/Stream/ 内存等的管理、模型及算子的加载与执行、媒体数据处理、Graph 管理等 API 库,供用户开发深度神经网络应用。

图优化和编译: 统一的 IR 接口对接不同前端,支持 TensorFlow/Caffe/MindSpore 表达的计算图的解析/优化/编译,提供对后端计算引擎最优化部署能力

  • Graph Engine:图编译和运行的控制中心
  • Fusion Engine:管理算子融合规则
  • AICPU Engine:AICPU 算子信息管理
  • HCCL:HCCL 算子信息管理

算子编译和算子库:

  • TBE:编译生成算子及算子开发工具
  • 算子库:神经网络加速库

数字视觉预处理: 实现视频编解码(VENC/VDEC)、JPEG 编解码(JPEG/E)、PNG 解码(PNGD)、VPC(预处理)

执行引擎:

  • Runtime:为神经网络的任务分配提供资源管理通道
  • Task Scheduler:计算图 Task 序列的管理和调度、执行

3.2.3 计算资源层

主要实现系统对数据的处理和对数据的运算执行。

计算设备:

  • AI Core:执行 NN 类算子
  • AI CPU:执行 CPU 算子
  • DVPP:视频/图像编解码、预处理

通信链路:

  • PCIe:芯片间或芯片与 CPU 间高速互联
  • HCCS:实现芯片间缓存一致性功能
  • RoCE:实现芯片内存 RDMA 功能

参考资料

[1]CANN-昇腾社区[EB/OL]. [2024-04-12]. https://www.hiascend.com/zh/software/cann.

[2]Ascend-昇腾社区[EB/OL]. [2024-04-12]. https://www.hiascend.com/.

[3]昇腾Ascend 随记 —— 昇腾 AI 的基本架构 - 掘金[EB/OL]. [2024-04-12]. https://juejin.cn/post/7231013251836002364.