【AI系统】昇腾 AI 处理器

简介: 本文介绍华为昇腾AI处理器的架构与卷积加速原理,基于达芬奇架构设计,支持云边端一体化解决方案,具备高能效比和强大的3D Cube矩阵计算单元。文章详细解析了昇腾AI处理器的核心组件及其高效的数据处理机制,旨在通过软硬件优化实现高效的卷积计算加速。

本文将会介绍华为昇腾 AI 处理器的架构与卷积加速原理。昇腾 AI 处理器是华为基于达芬奇架构专为AI计算加速而设计的处理器,它支持云边端一体化的全栈全场景解决方案,具有高能效比和强大的 3D Cube 矩阵计算单元,支持多种计算模式和混合精度计算。

昇腾 AI 处理器的架构包括了 AI Core、AI CPU、多层级片上缓存/缓冲区和数字视觉预处理模块 DVPP,这些组件通过 CHI 协议的环形总线实现数据共享和一致性而组成的 SoC。此外,本文还将探讨卷积加速原理,即昇腾 AI 处理器如何通过软硬件优化实现高效的卷积计算加速,包括矩阵计算单元和数据缓冲区的高效组合以及灵活的数据通路设计,以满足不同神经网络的计算要求。

昇腾 AI 处理器

华为公司针对 AI 领域专用计算量身打造了“达芬奇架构”,并于 2018 年推出了基于“达芬奇架构”的昇腾 AI 处理器,开启了华为的AI之旅。

从基础研究出发,立足于自然语言处理、机器视觉、自动驾驶等领域,昇腾 AI 处理器致力于打造面向云边端一体化的全栈全场景解决方案,同时为了配合其应用目标,打造了异构计算架构 CANN(Computer Architecture for Nerual Network),为昇腾 AI 处理器进行加速计算。全栈指技术方面,包括 IP、芯片、加速计算、AI 框架、应用使能等的全栈式设计方案。全场景包括公有云、私有云、各种边缘计算、物联网行业终端及消费者终端设备。围绕全栈全场景,华为正以昇腾 AI 处理器为核心,以算力为驱动,以工具为抓手,全力突破 AI 发展的极限。

自 2018 年伊始,如图所示昇腾 AI 处理器的训练和推理系列型号陆续推出。推理系列的处理器则是面向移动计算场景的强算力 AI 片上系统(SoC,System on Chip)。训练系列的处理器主要应用于云端,可以为深度学习的训练算法提供强大算力。

09AscendSOC01.png

在设计上,昇腾 AI 处理器意图突破目前 AI 芯片功耗、运算性能和效率的约束,目的是极大提升能效比。昇腾 AI 处理器采用了华为自研的达芬奇架构,专门针对神经网络运算特征而量身定做,以高性能的 3D Cube 矩阵计算单元为基础,实现针对张量计算的算力和能效比大幅度提升。每个矩阵计算单元可以由一条指令完成 4096 次乘加计算(如图所示),并且处理器内部还支持多维计算模式,如标量、矢量、矩阵等,打破了其它 AI 专用芯片的局现象,增加了计算的灵活度。同时支持多种类混合精度计算,在实现推理应用的同时也强力支持了训练的数据精度要求。

09AscendSOC02.png

达芬奇架构的统一性体现在多个应用场景的良好适配上,覆盖高、中、低全场景,一次开发可支持多场景部署、迁移和协同。从架构上提升了软件效率。功耗优势也是该架构的一个显著特点,统一的架构可以支持从几十毫瓦到几百瓦的芯片,可以进行多核灵活扩展,在不同应用场景下发挥出芯片的能耗优势。

达芬奇架构指令集采用了 CISC 指令且具有高度灵活性,可以应对日新月异、变化多端的新算法和新模型。高效的运算密集型 CISC 指令含有特殊专用指令,专门为神经网络打造,助力 AI 领域新模型的研发,同时帮助开发者更快速的实现新业务的部署,实现在线升级,促进行业发展。昇腾 AI 处理器在全业务流程加速方面,采用场景化视角,系统性设计,内置多种硬件加速器。昇腾 AI 处理器拥有丰富的 IO 接口,支持灵活可扩展和多种形态下的加速卡设计组合,很好应对云端、终端的算力和能效挑战,可以为各场景的应用强劲赋能。

AI 处理器架构

昇腾 AI 处理器本质上是一个片上系统(System on Chip,SoC),主要可以应用在和图像、视频、语音、文字处理相关的应用场景。上图是早期昇腾其处理器的逻辑架构,其主要的架构组成部件包括特制的计算单元、大容量的存储单元和相应的控制单元。无论是训练还是推理的芯片以及上层的硬件型号,基于基于 DaVinci AI 技术架构如图所示。

09AscendSOC03.png

该处理器大致可以划为:芯片系统控制 CPU(Control CPU),AI 计算引擎(包括 AI Core 和 AI CPU),多层级的片上系统缓存(Cache)或缓冲区(Buffer),数字视觉预处理模块(Digital Vision Pre-Processing,DVPP)等。芯片可以采用 LPDDR4 高速主存控制器接口,价格较低。目前主流 SoC 芯片的主存一般由 DDR(Double Data Rate)或 HBM(High Bandwidth Memory)构成,用来存放大量的数据。HBM 相对于 DDR 存储带宽较高,是行业的发展方向。其它通用的外设接口模块包括 USB、磁盘、网卡、GPIO、I2C 和电源管理接口等。

昇腾 AI 处理器逻辑图

当该处理器作为计算服务器的加速卡使用时,会通过 PCIe 总线接口和服务器其它单元实现数据互换。以上所有这些模块通过基于 CHI 协议的片上环形总线相连,实现模块间的数据连接通路并保证数据的共享和一致性。

昇腾 AI 处理器集成了多个 ARM 架构的 CPU 核心,每个核心都有独立的 L1 和 L2 缓存,所有核心共享一个片上 L3 缓存。集成的 CPU 核心按照功能可以划分为专用于控制芯片整体运行的主控 CPU 和专用于承担非矩阵类复杂计算的 AI CPU。两类任务占用的 CPU 核数可由软件根据系统实际运行情况动态分配。

除了 CPU 之外,该处理器真正的算力担当是采用了达芬奇架构的 AI Core。AI Core 通过特别设计的架构和电路实现了高通量、大算力和低功耗,特别适合处理深度学习中神经网络必须的常用计算如矩阵相乘等。目前该处理器能对整数或浮点数提供强大的乘加计算力。由于采用了模块化的设计,可以很方便的通过叠加模块的方法提高处理器的算力。

针对神经网络参数量大、中间值多的特点,该处理器还特意为 AI 计算引擎配备了一定容量的片上缓冲区(On-Chip Buffer),提供高带宽、低延迟、高效率的数据交换和访问。能够快速访问到所需的数据对于提高神经网络算法的整体性能至关重要,同时将大量需要复用的中间数据缓存在片上对于降低系统整体功耗意义重大。为了能够实现计算任务在 AI Core 上的高效分配和调度,还特意配备了一个专用 CPU 作为任务调度器(Task Scheduler,TS)。该 CPU 专门服务于 AI Core 和 AI CPU,而不承担任何其他的事务和工作。

数字视觉预处理模块(DVPP)主要完成图像视频的编解码,视频处理,对图像支持 JPEG 和 PNG 等格式的处理。来自主机端存储器或网络的视频和图像数据,在进入昇腾 AI 处理器的计算引擎处理之前,需要生成满足处理要求的输入格式、分辨率等,因此需要调用数字视觉预处理模块进行预处理以实现格式和精度转换等要求。数字视觉预处理模块主要实现视频解码(Video Decoder,VDEC),视频编码(Video Encoder,VENC),JPEG 编解码(JPEG Decoder/Encoder,JPEGD/E),PNG 解码(PNG Decoder,PNGD)和视觉预处理(Vision Pre-Processing Core,VPC)等功能。图像预处理可以完成对输入图像的上/下采样、裁剪、色调转换等多种功能。数字视觉预处理模块采用了专用定制电路的方式来实现高效率的图像处理功能,对应于每一种不同的功能都会设计一个相应的硬件电路模块来完成计算工作。在数字视觉预处理模块收到图像视频处理任务后,会读取需要处理的图像视频数据并分发到内部对应的处理模块进行处理,待处理完成后将数据写回到内存中等待后续步骤。

昇腾 910

昇腾 910 处理器的目标场景是云端的推理和训练,其架构如图所示,包含 Davinci Core、DVPP、HBM、DDR4 等组件。

昇腾 AI 处理器逻辑图

昇腾 910 处理器采用了芯粒(chiplet)技术,包含六个 die: 1 个计算芯粒(包含 32 个 Davinci Core、16 个 CPU Core 和 4 个 DVDP),1 个 IO 芯粒,和 4 个 HBM 芯粒(总计 1.2TB/s 带宽)。针对云端训练和推理场景,昇腾 910 处理器做的优化包括:

  1. 高算力: 训练场景通常使用的 Batch Size 较大,因此采用最高规格的 Ascend-Max,每个 Core 每个周期可以完成 16*16*16=4096 次 FP16 乘累加。

  2. 高 Load/Store 带宽: 训练场景下计算反向 SGD 时,会有大量对 Last Level Cache 和片外缓存的访问,因此需要配备较高的 Load/Store 带宽,因此昇腾 910 除了 DDR 还采用了 HBM 技术。

  3. 100G NIC: 随着 DNN 的模型尺寸愈发庞大,单机单卡甚至单机多卡已经不能满足云端训练的需求,为了支持多卡多机组成集群,昇腾 910 集成了支持 ROCE V2 协议的 100G NIC 用于跨服务器传递数据,使得可以使用昇腾 910 组成万卡集群。

  4. 高吞吐率的数字视觉与处理器(DVPP): DVPP 用于 JPEG、PNG 格式图像编解码、图像预处理(对输入图像上下采样、裁剪、色调转换等)、视频编解码,为了适配云端推理场景,DVPP 最高支持 128 路 1080P 视频解码。

昇腾 310

昇腾 310 处理器的目标场景是边缘推理,比如智慧城市、智慧新零售、机器人、工业制造等,其架构如上图所示,主要包含 Davinci Core、DVPP、LPDDR4 等组件。

昇腾 AI 处理器逻辑图

相比昇腾 910,昇腾 310 的定制化 IP 相对较少,但是提供了更多外设接口。由于在边缘推理场景下 batch size 通常只有 1,因此昇腾 310 选择了较小的矩阵计算维度(m = 4, n = 16, k = 16)以实现$C_{mn} = A_{mk}\times B_{kn}\quad\quad$。由于在矩阵运算中$M = batch\_size \times output\_hight \times output\_width \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad$, 当 batch size = 1 时,将 m 设置成 4 可以提升乘累加利用率。

计算加速原理

在神经网络中,卷积计算一直扮演着至关重要的角色。在一个多层的卷积神经网络中,卷积计算的计算量往往是决定性的,将直接影响到系统运行的实际性能。昇腾 AI 处理器作为 AI 加速器自然也不会忽略这一点,并且从软硬件架构上都对卷积计算进行了深度的优化。

卷积/矩阵计算

下图展示的是一个典型的卷积层计算过程,其中$\mathbf{X}\quad$ 为输入特征矩阵,$\mathbf{W}\quad$ 为权重矩阵;$\mathbf{b}\quad$ 为偏置值;$\mathbf{Y}_o$ 为中间输出;$\mathbf{Y}\quad$ 为输出特征矩阵,GEMM 表示通用矩阵乘法。输入特征矩阵 $\mathbf{X}\quad$ 和 $\mathbf{W}\quad$ 先经过 Im2Col 展开处理后得到重构矩阵 $\mathbf{X}_{I2C}$ 和 $\mathbf{W}_{I2C}$ 通过矩阵 $\mathbf{X}_{I2C}$ 和矩阵 $\mathbf{W}_{I2C}$ 进行矩阵相乘运算后得到中间输出矩阵 $\mathbf{Y}_o$;接着累加偏置 $\mathbf{b}\quad$,得到最终输出特征矩阵 $\mathbf{Y}\quad$,这就完成了一个卷积神经网络中的卷积层处理。

卷积计算过程

计算数据通路

利用 AI Core 来加速通用卷积计算,总线接口从核外 L2 缓冲区或者直接从内存中读取卷积程序编译后的指令,送入指令缓存中,完成指令预取等操作,等待标量指令处理队列进行译码。如果标量指令处理队列当前无正在执行的指令,就会即刻读入指令缓存中的指令,并进行地址和参数配置,之后再由指令发射模块按照指令类型分别送入相应的指令队列进行执行。在卷积计算中首先发射的指令是数据搬运指令,该指令会被发送到存储转换队列中,再最终转发到存储转换单元中。

典型卷积数据流

卷积整个数据流如上图所示,如果所有数据都在 DDR 或 HBM 中,存储转换单元收到读取数据指令后,会将矩阵 $\mathbf{X}\quad$ 和 $\mathbf{W}\quad$ 由总线接口单元从核外存储器中由数据通路 1 读取到输入缓冲区中,并且经过数据通路 3 进入存储转换单元,由存储转换单元对 $\mathbf{X}\quad$ 和 $\mathbf{W}\quad$ 进行补零和 Im2Col 重组后得到 $\mathbf{X}_{I2C}$ 和 $\mathbf{W}_{I2C}$ 两个重构矩阵,从而完成卷积计算到矩阵计算的格式变换。

在格式转换的过程中,存储转换队列可以发送下一个指令给存储转换单元,通知存储转换单元在矩阵转换结束后将 $\mathbf{X}_{I2C}$ 和 $\mathbf{W}_{I2C}$ 经过数据通路 5 送入矩阵计算单元中等待计算。

根据数据的局部性特性,在卷积过程中如果权重 $\mathbf{W}_{I2C}$ 需要重复多次计算,可以将权重经过数据通路 17 固定在输入缓冲区中,在每次需要用到该组权重时再经过数据通路 18 传递到矩阵计算单元中。

在格式转换过程中,存储转换单元还会同时将偏置数据从核外存储经由数据通路 4 读入到输出缓冲区中,经过数据通路 6 由存储转换单元将偏置数据从原始的向量格式重组成矩阵后,经过数据通路 7 转存入输出缓冲区中,再经过数据通路 9 存入累加器中的寄存器中,以便后续利用累加器进行偏置值累加。

当左、右矩阵数据都准备好了以后,矩阵运算队列会将矩阵相乘指令通过数据通路 5 发送给矩阵计算单元。$\mathbf{X}_{I2C}$ 和 $\mathbf{W}_{I2C}$ 矩阵会被分块组合成 16*16 的矩阵,由矩阵计算单元进行矩阵乘法运算。如果输入矩阵较大则可能会重复以上步骤多次并累加得到 $\mathbf{Y}_o$ 中间结果矩阵,存放于矩阵计算单元中。

矩阵相乘完成后如果还需要处理偏置值,累加器会收到偏置累加指令,并从输出缓冲区中通过数据通路 9 读入偏置值,同时经过数据通路 8 读入矩阵计算单元中的中间结果 $\mathbf{Y}_o$ 并累加,最终得到输出特征矩阵 $\mathbf{Y}$ ,经过数据通路 10 被转移到输出缓冲区中等待后续指令进行处理。

AI Core 通过矩阵相乘完成了网络的卷积计算,之后向量执行单元会收到池化和激活指令,输出特征矩阵 $\mathbf{Y}\quad$ 就会经过数据通路 12 进入向量计算单元进行池化和激活处理,得到的结果 $\mathbf{Y}\quad$ 会经过数据通路 13 存入输出缓冲区中。向量计算单元能够处理激活函数等一些常见的特殊计算,并且可以高效实现降维的操作,特别适合做池化计算。在执行多层神经网络计算时,$\mathbf{Y}\quad$ 会被再次从输出缓冲区经过数据通路 14 转存到输入缓冲区中,作为输入重新开始下一层网络的计算。

达芬奇架构针对通用卷积的计算特征和数据流规律,采用功能高度定制化的设计,将存储、计算和控制单元进行有效的结合,在每个模块完成独立功能的同时实现了整体的优化设计。AI Core 高效组合了矩阵计算单元与数据缓冲区,缩短了存储到计算的数据传输路径,降低延时。

同时 AI Core 在片上集成了大容量的输入缓冲区和输出缓冲区,一次可以读取并缓存充足的数据,减少了对核外存储系统的访问频次,提升了数据搬移的效率。同时各类缓冲区相对于核外存储系统具有较高的访问速度,大量片上缓冲区的使用也极大提升了计算中实际可获得的数据带宽。

同时针对神经网络的结构多样性,AI Core 采用了灵活的数据通路,使得数据在片上缓冲区、核外存储系统、存储转换单元以及计算单元之间可以快速流动和切换,从而满足不同结构的神经网络的计算要求,使得 AI Core 对各种类型的计算具有一定的通用性。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/ 或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

目录
相关文章
|
7月前
|
人工智能 运维 安全
英伟达发布AI Enterprise 5.0,帮助企业加速生成式AI开发
英伟达发布AI Enterprise 5.0,这是一个云端原生平台,加速生成式AI的开发与部署。该平台提供优化的数据科学流程,支持生成式AI,强调性能、安全性和灵活性。核心特性包括NVIDIA NIM和CUDA-X微服务的性能优化,严格的安全监测,多环境运行能力,及企业级支持与服务。API目录提供多种预训练模型,促进跨领域的应用创新。然而,平台可能对小企业有高技术门槛和成本挑战,且可能存在与现有系统兼容性问题。
146 1
英伟达发布AI Enterprise 5.0,帮助企业加速生成式AI开发
|
2天前
|
人工智能 atlas 开发工具
【AI系统】昇腾 AI 架构介绍
昇腾计算产业基于华为昇腾系列处理器,涵盖硬件、基础软件、应用使能等,构建全栈AI计算基础设施。华为通过开放硬件、开源软件,支持多框架,推动AI技术在端、边、云的广泛应用,促进AI产业生态繁荣。
12 1
|
2天前
|
存储 机器学习/深度学习 人工智能
【AI系统】昇腾 AI 核心单元
本文深入解析了华为昇腾AI处理器的核心——AI Core及其达芬奇架构。AI Core采用特定域架构(DSA),专为深度学习算法优化,通过矩阵、向量和标量计算单元的高效协作,实现了对深度学习算法的加速。文章详细介绍了AI Core的计算单元、存储系统及控制单元的设计,展示了其如何通过优化数据通路和控制流程,显著提升计算性能。
18 3
|
4天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI芯片驱动智能革命
本课程深入解析AI模型设计演进,探讨AI算法如何影响AI芯片设计,涵盖CPU、GPU、FPGA、ASIC等主流AI芯片,旨在全面理解AI系统体系,适应后摩尔定律时代的技术挑战。
25 5
|
4天前
|
机器学习/深度学习 人工智能 芯片
【AI系统】超异构计算
本文探讨了计算机架构发展的黄金十年,重点介绍了异构计算和超异构计算的概念及其在AI芯片发展中的应用。文章首先回顾了AI芯片发展的三个阶段,随后详细阐述了异构计算的优势和应用场景,如性能飞跃、灵活定制、降低成本和降低功耗。接着,文章分析了超异构计算的出现背景、基本特征及其面临的挑战,包括软件层的复杂性和硬件定义软件与软件定义硬件之间的权衡。最后,展望了超异构计算的未来,强调了跨平台统一计算架构的重要性,以及构建开放生态系统的必要性。
27 5
|
3天前
|
机器学习/深度学习 存储 人工智能
【AI系统】为什么 GPU 适用于 AI
本文探讨了GPU在AI计算中的应用,从卷积计算的基本原理入手,解析了GPU线程分级与AI计算模式的关系,以及矩阵乘法如何通过GPU编程提升算力利用率。文章还介绍了计算强度的概念,分析了不同数据结构对计算强度的影响,以及GPU中Tensor Core的作用,强调了在不同存储位置下,找到计算强度与矩阵大小的最佳平衡点对AI计算系统优化的重要性。
19 2
|
2天前
|
人工智能 算法框架/工具 芯片
【AI系统】寒武纪介绍
中科寒武纪科技股份有限公司,成立于2016年,致力于打造云边端一体、软硬件协同的智能芯片产品和平台化基础系统软件。寒武纪的产品线涵盖了终端智能处理器IP、边缘端和云端智能加速卡,形成了从1A处理器核到思元系列MLU100、MLU200、MLU300的完整布局。其核心技术包括高效的MLU Core架构和Cambricon Neuware软件栈,支持高性能AI计算,助力机器更好地理解和服务人类。
15 0
|
3月前
|
人工智能 数据中心 芯片
【通义】AI视界|英特尔推出新一代AI芯片挑战英伟达
今日科技热点包括:OpenAI CTO 米亚·穆拉蒂宣布离职,Meta发布多功能Llama 3.2语言模型,扎克伯格因Meta的人工智能策略使个人资产突破2000亿美元,星纪魅族展示AI生态新品如Lucky 08 AI手机及智能穿戴设备,以及英特尔发布Xeon 6 CPU和Gaudi 3 AI加速器挑战英伟达市场地位。这些动态展现了人工智能领域快速发展的趋势及其对科技巨头的影响。
|
2月前
|
人工智能 算法 调度
【AI系统】AI系统的组成
本文详细解析了AI系统的多层次架构,涵盖应用与开发层、AI框架层、编译与运行时及硬件体系结构等,阐述各部分如何协同支撑AI应用的开发与运行,提升整体性能与效率,并随著AI技术进步持续演进。从编程语言到AI芯片设计,每一层都对系统的最终表现起着至关重要的作用。
105 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI系统的生态
在快速发展的AI领域,系统生态变得愈加复杂多元,涵盖核心软硬件、算法、框架及广泛的应用领域。本文深入剖析AI生态构成及其对技术进步的重要性,强调健康生态对促进技术创新、提升开发效率及加速商业化的作用。从核心硬件到算法框架,再到安全与隐私保护,全方位解读AI生态的构建与未来发展。
62 0
下一篇
无影云桌面