4

华为达芬奇AI芯片架构介绍 - chuandong.comfs2.chuandong.com/upload/files/20190403/829A9BD6A6D644C1.pdf · 上分析,我们尝试给出如下定义: 基于 asic(专用集成电路),可以基于软件灵活定义和

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 2: 华为达芬奇AI芯片架构介绍 - chuandong.comfs2.chuandong.com/upload/files/20190403/829A9BD6A6D644C1.pdf · 上分析,我们尝试给出如下定义: 基于 asic(专用集成电路),可以基于软件灵活定义和

8988智能系统 智能系统

红绿灯等状况,如果基于 CPU 计算,时延无法满足要求,恐

怕车翻到河里还没发现前方是河;如果用 GPU 计算,虽然时

延可以满足要求,但是功耗大,汽车电池无法长时间运行。此

外,1 块 GPU 卡少则万元多则近 10 万人民币,无法普及大多

数普通消费者。

本质上,GPU 不是专门针对 AI 算法开发的 ASIC,人们

亟需找到既能解决深度学习训练和推理的运算能力,又能解决

功耗和成本问题的芯片,FPGA 芯片在这样背景下诞生。

FPGA 可编程的阵列(Field-Programmable Gate Array),

作为ASIC领域中的一种半定制电路而出现,本质上是基于无指令,

无需共享内存的体系架构创新,满足了特定场景的需求。

FPGA 主要通过以下手段提升性能、降低时延;减少能耗、

降低成本:

1、通过烧入可配置、可反复刷写的 FPGA 配置文件来定

义大量门电路和存储器间的连线。

2、通过配置文件,将 FPGA 变成不同的处理器,支持各

种不同的深度学习计算任务。

3、FPGA 中的寄存器和片上内存,属于各自的控制逻辑,

无需不必要的冲裁和缓存。

根据研究发现,对于大量的矩阵运算 GPU 计算能力远高

于 FPGA,但是由于 FPGA 体系结构特点,非常适用于低时延、

流式计算密集型任务处理。在类似海量并发的云端推断,比如

语音云识别场景,FPGA 相比 GPU 具备更低计算时延的优势,

能够提供更佳的消费者体验。

但是,FPGA 芯片本质上是通过预编程的方法来提升性能

的,AI 需要处理的内容往往是大量非结构化数据,

例如视频、图像等,这类数据很难通过预编程的方

法得到满意的结果。相反,需要通过人工智能芯片,

进行大量样本训练和推理交互,形成算法模型后,

集成了 AI 芯片和算法的智能设备,才能具备智能

推理能力。

无论是 GPU 还是 FPGA,虽然都可以运行 AI

算法,但均美中不足, GPU 本质上不是专门针对

AI 算法开发的 ASIC,功耗大、成本高;FPGA 虽

然架构有一定的创新,但是预编程繁琐。从严格意

义上来讲,都不是 AI 芯片。那么,什么是 AI 芯片

呢?我们知道,人工智能的深度学习算法的数据运

算特征,需要芯片具备比传统计算性能高出 2-3 个数量级。综

上分析,我们尝试给出如下定义:

基于 ASIC(专用集成电路),可以基于软件灵活定义和

高度定制的专用芯片。一方面,能够进行深度学习神经网络运

算;另一方面,基于硬件计算架构的创新,提升深度学习运算

效率,达到最佳能效(TOPS/W)的芯片,才可以称之为 AI 芯片。

值得肯定的是,FPGA 大胆迈出了人工智能芯片硬件架构

创新的第一步,即 ASIC 专用集成电路模式。

AI 芯片依赖架构创新如上分析,FPGA 之所以比 CPU,GPU 能耗低,本质上是

无指令,无需共享内存的体现结构带来的福利。在探讨架构创

新之前,我们来分析是什么原因造成了 CPU/GPU 无法满足人

工智能的需求。

目前市面上绝大多数 AI 芯片采用类 CPU 架构(冯 . 诺依

曼架构的局部优化),本质上还是“计算优先”模式,比如通

过扩展并行计算单元来提升芯片处理性能。但人工智能深度学

习神经网络算法训练,多个计算单元往往需要频繁的存储器读

写操作,而类 CPU 架构本质上还是共享存储模式,无法根本

解决冯 . 诺依曼计算架构共享内存模式导致的存储性能瓶颈问

题,又称 “内存墙”,类 CPU 架构示意如图 1 所示。

深度学习神经网络数据运算特征表现为:高并发、高耦合,

以及“高并发 + 高耦合”的“三高”特征。算法处理需要进行:

大量的计算、大量的并行处理、低延迟的操作要求。以训练为

例,训练过程涉及大量数据存储,对内存数量、访问内存的带

宽和内存管理方法的要求都非常高。要求芯片具备一定精度的

图 1 类 CPU 芯片架构

浅谈 AI 芯片和架构设计

文 / 华为公司企业业务部 MKT AI 解决方案总监 黄玖红

根据华为 GIV(Huawei Global Industry Vision)预测,2025 年全球新增数据量预计 180ZB,将远超人类处理能力,95% 的数

据将依赖 AI 处理。数据是企业重要资产,借助人工智能手段进行更高效的数据分析、处理、决策,提升企业生产效率和智能化水平,

将成为企业经营的核心任务之一。预计 2025 年,全球企业对 AI 的采用率将达 86%,AI 的崛起将深刻改变企业的业务模式和价值

创造模式。

60 年来人工智能发展虽几起几落,却始终在新兴 ICT 信息技术驱动下不断取得新的突破。但近些年,CPU 性能未能呈现如摩尔定

律预测的定期翻倍,业内普遍观点认为摩尔定律已经失效,能否开发出具有超高运算能力、符合市场需求的芯片,已成为人工智能

领域可持续发展的重要因素。

从 Alpha Go 战胜李世石说起2016 年谷歌 Alpha Go 与围棋世界冠军李世石上演“世

纪人机大战”,将人工智能的关注度推到了前所未有的高度。

人工智能机器人阿尔法狗以 4 比 1 的总比分战胜职业九段棋手

李世石。此次人机大战,谷歌 DeepMind 公司共消耗了 1202

颗 CPU 和 176 颗 GPU 的计算资源,阿尔法狗的浮点运算能

力是 1998 年 IBM 深蓝战胜象棋冠军时的 3 万倍之多。

但从能效的角度,Alpha Go 真的战胜人类了吗?我们从

以下方面分析。成年男性每日需要能量大约 2550 千卡,1 千

卡 (KCAL)=4.184 千焦耳 (KJ),如果我们把卡路里换算成焦

耳大概是 1000 多万焦耳,下棋 1 小时,李世石大概消耗 0.7

兆焦耳。Alpha Go 与李世石下棋用了 1202 颗 CPU,176 颗

GPU,以 1 颗 CPU100W,1 颗 GPU200W,1 小时,阿尔法

狗需要,1 瓦时 =3600 焦耳,共消耗 559 兆焦耳,这相当于

李世石用的能耗大约是 Alpha Go 能耗的八百分之一。

之后,谷歌的 DeepMind 团队对硬件进行改进,将运算

单元从 CPU 换算成 GPU,同样级别比赛,阿尔法狗消耗虽下

降了 12 倍,但仍然是人类能耗的 67 倍之多。

因此,我们看到,GPU 在性能和效率上,相比 CPU 有很

大的提升,但它仍更适合大规模分布式训练场景。随着 5G、

物联网、云和超宽带信息技术的发展,智能将延伸到每一台智

能设备和终端,包括各种形式边缘计算,以及 IoT 物联网、消

费类智能终端,为了实现极致的用户体验,这类设备往往在最

靠近用户的地方,需要长时间待机,对功耗和空间的约束要是

非常高的,显然 GPU 无法满足这类场景的需求。

而人工智能的本质是帮助各行各业提高生产效率,产生社

会和商业价值。若像 Alpha Go 一样,依赖庞大且昂贵的计算

资源实现一个简单的场景,实则大材小用。从我们对 AI 需求

的理解来看,人工智能芯片的研发,从一开始就要考虑对全场

景智能需求的覆盖,无论是云、边缘、还是终端;无论是深度

学习训练,还是推理,或者两者兼具,而不是一种芯片包打天

下。从人工智能芯片发展历程来看,也是在逐步适应这个过程。

重新定义 AI 芯片人工智能芯片经历了从 CPU->GPU->FPGA->AI 芯片的

发展历程。

阿尔法狗的首次战胜人类可谓是费了“洪荒之力”,本质

上是基于冯 . 诺依曼计算架构所决定的。于是具备强大并行计

算能力与浮点计算能力 GPU 一度成为深度学习模型训练和推

理的标配。相比 CPU,GPU 提供更快的处理速度,需要更少

的服务器投入和更低的功耗,成为近些年来深度学习训练的主

流模式。

但 GPU 无法满足所有场景深度学习计算任务。除前面所

述,再举个例子,比如 L4 自动驾驶,需要识别道路、行人、

Page 3: 华为达芬奇AI芯片架构介绍 - chuandong.comfs2.chuandong.com/upload/files/20190403/829A9BD6A6D644C1.pdf · 上分析,我们尝试给出如下定义: 基于 asic(专用集成电路),可以基于软件灵活定义和

9190智能系统 智能系统

训练和推理场景的数据精度要求

● 集成了张量、矢量、标量多种计算单元

● 可扩展内存

● 专用的和分布的 , 显式控制的内存分布设计

4 TByte/s L2 Buffer 缓存

1.2 TByte/s HBM 高带宽内存

● 可扩展的片上互联

片上超高带宽 Mesh 网络(LSU)

基于达芬奇创新架构,华为首批推出 7nm 的昇腾 910

(Ascend-Max)以及 12nm 的昇腾 310(Ascend-Mini)。

Ascend 910 芯片是目前全球已发布的单芯片计算密度最大的

芯片。支持云侧分布式大规模训练场景,若是集齐 1024 个昇

腾 910,会出现迄今为止全球最大的 AI 计算集群,性能达到

256 个 P,不管多么复杂的模型都能轻松训练。

Ascend 310 芯片则是于边缘计算推理场景高效算力和低

功耗 AI SoC。

基于达芬奇架构,华为公司还规划了适用在蓝牙耳机、

智 能 手 机、 可 穿 戴 设 备 的 Ascend 昇 腾 芯 片 系 列( 图 3:

图 3 华为全栈全场景 AI 架构

图 4 华为 Ascend 昇腾系列芯片横跨全场景实现最优 TOPS/W

浮点数运算能力,且同时支持正向和反向的计算过程和多次迭

代。其次,训练过程需要不断调整神经网络中的参数(权重),

包括参数的多次输入和多次读取,以及复杂的数据同步要求,

整个在线训练过程参数的频繁操作,对存储器带来非常巨大的

挑战。

本质上,冯 . 诺依曼计算架构是摩尔定律在人工智能场景

下失效的根因。如何通过硬件体系架构的创新,克服“存储墙”

瓶颈,实现人工智能最佳的深度学习算法运算效率,成为人工

智能芯片架构创新和发展的方向。

AI 芯片架构设计需要符合以下几点要求:

符合深度学习神经网络运算的基本需求,无论是训练还是

推断,以及两者的协同,在数据精度、可伸缩、可扩展能力以

及功耗效率方面要满足实际商用场景要求。

支持“近数据计算”,通过硬件架构设计,拉近运算和存

储的距离,减少数据搬移次数,降低能耗。比如支持神经网络

运算放在片上存储器进行计算。

支持灵活伸缩和集群,支持大规模分布式并行 AI 训练。

比如并行运算单元内部通过超带宽网络进行互联。

支持软件定义 AI 芯片,满足绝大多数复杂 AI 的算法的

个性化定制和组合应用,通过广泛的应用达到边际效益,降低

AI 芯片成本。

华为达芬奇 AI 芯片架构介绍华为公司顺应趋势,基于多年的芯片研发经

验,于 2018 年 10 月,推出全球独创的达芬奇人

工智能芯片架构,并基于此推出全栈全场景 AI 解

决方案和首批 Ascend (昇腾)系列芯片。值得

一提的是,达芬奇架构针对 AI 运算特征而设计,

以高性能 3D Cube 计算引擎为基础,实现了算力

和能耗比(能效)的大幅提升。从云、边缘、端

独立的和协同的 AI 实际需求出发,从极致低功耗,

到极致大算力的 AI 场景,为云、边、端之间的算

法协同、迁移、部署、升级和运维,提供了统一

架构底层核心支撑,大大降低了人工智能算法开

发和迭代的门槛,降低企业人工智能部署和商用

成本。可以说,统一、可扩展的达芬奇 AI 芯片架

构,为华为“用得起”、“用得好”、“用得放心”

的全栈全场景普惠 AI 战略,提供了强大的支撑。

达芬奇架构如图 2 所示。

不同于传统冯·诺伊曼架构,数据从处理单元外的存储器

提取,处理完之后再写回存储器。达芬奇架构设计一开始就考

虑克服冯·诺伊曼架构导致的“内存墙”问题,在类 CPU 架构

基础(本质是计算优先)上,围绕降低存储复杂度做了进一步

的创新优化(存储优先)。如图 2 所示,一方面,通过多核堆

叠实现并行计算能力扩展;另一方面,通过设计了片上的存储

器(Cache/Buffer),拉近 Cube 运算和存储的距离,减少对

存储器(DDR)的访问,缓解冯·诺伊曼“瓶颈”问题;此外,

运算与外部存储之间,设计了高带宽的片外存储器(HBM),

克服计算资源共享存储器读写时的访问速度限制。同时,为了

支持更大规模云侧神经网络训练,设计了超高带 Mesh 网络

(LSU)实现多个 cube 扩展片上的互联。

总结起来,达芬奇架构具备三大特征:

● 统一架构

支持几十毫瓦到几百瓦的全场景 AI 系列芯片。(参见图 3)

● 可扩展计算

每个 AI core,在一个时钟周期可以进行完成 4096 次

MAC 运算

● 弹 性 多 核 堆 叠, 可 扩 展 Cube: 16x16xN,

N=16/8/4/2/1

支持多种混合多精度( int8/int32/FP16/FP32),支持

图 2 华为达芬奇芯片架构

Page 4: 华为达芬奇AI芯片架构介绍 - chuandong.comfs2.chuandong.com/upload/files/20190403/829A9BD6A6D644C1.pdf · 上分析,我们尝试给出如下定义: 基于 asic(专用集成电路),可以基于软件灵活定义和

92智能系统

Nano、Tiny、Lite),未来将以 IP 方式跟其他芯片结合在一

起服务于各个智能产品。目前市场面的 AI 芯片通常是云端训

练、边缘推理两款芯片,华为之所以考虑 Lite 等,核心原因是

一些 AI 应用场景需要非常低的功耗。

此外,达芬奇 AI 芯片架构考虑了软件定义 AI 芯片的能力。

CANN(图 3 所示)—也就是芯片高度自动化的算子开发工具,

是为神经网络定制的计算架构。CANN 可以提升 3 倍的开发

效率。除了效率之外,也兼顾算子性能,以适应人工智能应用

的迅猛发展。

在设计方面,Ascend 昇腾芯片系列突破了功耗、算力

等约束,实现了能效比的大幅提升(参见图 4)。以 Ascend

910 芯片为例,半精度(FP16)运算能力为 256TFLOPS,

比 NVIDIA 的 Tesla V100 要 高 一 倍, 整 数 精 度(INT8)

512TOPS,最大功耗仅 350W;昇腾 310 芯片主打极致高效

计算和低功耗,半精度(FP16)运算能力 8TFLOPS,整数精

度(INT8)16TOPS,最大功耗仅为 8W,310 的 TOPS/W(能

效)是英伟达同类芯片 NVP4 的 2 倍之多。

需要说明,华为不直接向第三方提供芯片,所以华为与芯

片厂商,没有直接竞争。华为提供硬件和云服务,围绕芯片为

基础,开发 AI 加速模组,AI 加速卡,AI 服务器,AI 一体机,

以及面向自动驾驶和智能驾驶的 MDC(Mobile-DC)进行销

售。

达芬奇架构背后的思考与以往信息化不同,AI 带来智能化的目的,是降低企业

生产成本,提高效率,这意味着 AI 应用将超越信息化,深入

到企业生产系统,一旦进入生产系统,就必须跟线下、本地各

种场景相结合。因此,这也是为何达芬奇架构设计的开始,就

考虑了 AI 超动态、超宽范围需求的目的。

但是,华为达芬奇架构也只是站在巨人的肩膀上做了一定

的微创新,仍面临巨大的技术难点和待攻克的难题:

1、虽然芯片制造工艺已处于纳米级,但在类脑、基因、

抗癌新药研制等更复杂的人工智能领域,集成密度的进一步提

高,将导致原子层电离泄露问题。比如,包括业界巨头纷纷发

力量子学,也正因为于此。

2、虽然缓解冯·诺伊曼“瓶颈”问题成为共识,但与计算

核心紧耦合的片上存储器的唯一方案 SRAM,其容量仅为兆级。

存储器件工艺本身的创新仍需努力。

3、存储优先模式,需要考虑多个片上存储的封装技术,

以及多个片上存储的管理,对软件的复杂性要求进一步提升。

4、未来,在类脑智能领域(极限情况,Alpha Go 消耗

的能量与人类相同),能耗要求比最先进 CMOS 器件还要低

几个数量级。

因此,我们认为,华为在人工智能芯片技术的发展上取得

了初步成果,但是 AI 芯片和架构设计,特别是神经网络芯片

所面临的工程领域的挑战远未停止。