李飞作者

Nvidia安培架构深入分析:显著增加云端AI芯片门槛

在近日的GTC上,Nvidia发布了最新的安培架构,以及基于安培架构的A100 GPU。A100 GPU使用台积电7nm工艺实现,包含了542亿个晶体管,据官方消息可以实现比起上一代V100高7倍的性能。除了算力提升之外,Nvidia还加入了GPU虚拟多实例(multi-Instance GPU,MIG)特性,可以让一块GPU虚拟化称为7个独立的GPU。

与安培架构同时公布的还有Nvidia DGX A100超级计算机,该超算平台包含了8块A100 GPU,峰值算力可达10 PetaOPS。

在发布会上,Nvidia对于算力做了非常多的渲染。然而,在我们看来,Nvidia在算力之外的特性扩展将成为更重要的门槛,中国半导体业界想要研发自主的GPU也需要考虑这些算力之外的重要特性。

计算架构:改良式更新,前进步伐与预期相符

Nvidia A100 GPU相比于前一代V100 GPU,其算力提升主要来源于以下几方面:

  • 加入稀疏运算支持。这可能是A100 GPU运算架构上最大的革新了。具体来说,A100支持2:4的结构化稀疏,即在使用稀疏计算时,在矩阵中每四个元素就必须有两个或以上是0。通过稀疏运算,可以把性能提升两倍。事实上,深度学习中使用稀疏运算的概念从提出至今已经有差不多5年了,到了今天Nvidia终于把这个概念落地到了产品中,而且使用的是的2:4结构化稀疏,其两倍的加速可以说是比较保守的(与此相对,2018年寒武纪的AI加速器IP中就支持四倍稀疏加速)。
  • 引入TF32数制。这主要针对训练计算。回顾人工智能训练计算的历程,最早普遍使用的是32位浮点数数制(FP32)。为了加速训练计算,从几年前开始Nvidia开始支持16位的FP16数制,该数制的优点是速度较快,但是动态范围方面在一些应用中存在一些问题。在A100中,Nvidia为了解决FP16的问题,引入了TF32数制。TF32事实上不是32位数制,而是19位数制,其动态范围(exponent)与FP32相同都是8位,但其精度(mantissa)与FP16相同都是10位,相当于是FP32和FP16的融合。相比FP32,TF32可以实现8倍的吞吐量提升。

  • 更强更多的流处理器(SM)。在A100中,每个流处理器的张量矩阵计算能力是V100的2倍,而在GPU中流处理器的数量相比V100则增加了30%。

  • 大的片上存储和更快的内存接口。A100的设计中,每个流处理器的L1缓存容量从V100的128KB增加到了192KB,L2 缓存则增加到了40MB,相比前一代增加了6.7倍。内存接口方面,A100的HBM2就恶口总贷款高达1555GB/s,相比前一代增加了1.7X。

总体来说,在计算架构方面,除了支持稀疏计算和引入TF32之外,其他的提升都属于可预计的常规提升,而稀疏计算和TF32在人工智能计算中也并非新概念。我们认为,这一代Nvidia A100的算力性能提升属于渐进式改良,而非革命式提升。

GPU虚拟实例和互联:进一步加高竞争壁垒

我们认为,A100除了算力之外,其更重要的竞争壁垒提升来源于针对数据中心的GPU虚拟实例支持和互联方案。

在安培架构中,一个重要的新特性就是GPU虚拟实例MIG。随着云端数据中心GPU部署比例的提升,如何实现GPU虚拟化是一个重要任务,而这一点如果解决不好将会降低总体GPU利用率。目前,在云服务中,用户申请的CPU和内存实例大多数情况下都是虚拟化的,当你申请到n个CPU核的时候,并不是说你包下了这块CPU芯片,而是很有可能在同一块CPU芯片上不同的核会分配给不同用户,而用户并不用去担心说他的CPU核都位于哪一块芯片上,主要用就行了。粗略地说,这就是CPU虚拟化。GPU之前也有虚拟化,即同一个GPU可以给不同的程序同时使用,但是其内存访问模型并不如CPU虚拟化那么完善,因此在多用户的情况下,通常不会采用多个用户同时共享一块GPU的方法,而是把一块GPU分配给一个用户。这样就带来了效率问题,例如用户A只需要用到一块GPU中一半的计算资源,而用户B的计算需要用到1.5块GPU,那么使用传统粗颗粒度解决方案就会造成用户A和B都占用了一块GPU,那么用户A事实上是浪费了GPU资源,而用户B的计算资源需求则没有很好地得到满足。随着GPU应用到越来越多的场景中,不同场景算法对于GPU的利用率和需求都有不同,这样的话沿用之前的粗颗粒度方案一定会造成总体数据中心GPU利用率的问题。

为了解决这个问题,MIG应运而生。A100中的MIG支持把同一块GPU划分成7个独立实例,每个实例之间的内存空间访问互不干扰,这样就可以实现细颗粒度的GPU计算资源分配,从而在计算需求非常异质化的云计算场景增加资源利用效率。诚然,目前MIG中支持的7个GPU虚拟实例划分或许还不算特别细颗粒度,但是却可以看作是走向虚拟化的重要里程碑。

除了MIG之外,A100还在多芯片互联上做了改善。首先,A100上包含了第三代NVLINK,主要用于同主机上GPU之间的互相通信,通信带宽相比V100增加了一倍到600GB/s。在GPU和CPU通信上,A100支持PCIe Gen4,相比上一代PCIe Gen3带宽也增加了一倍。此外,A100的互联还与Mellanox的解决方案做了深度集成,可以很好地支持基于以太网和InfiniBand的RDMA。

端AI芯片进入门槛大大提升

我们认为,Nvidia A100的发布再次拉开了与其他在人工智能云端领域芯片竞争对手的差距。

从算力上来看,Nvidia A100在BERT benchmark上的性能是T4的11倍,而初创公司中最成功的Habana(现已被Intel高价收购)在去年推出的新款Goya芯片在同一benchmark上的性能仅仅是T4的两倍左右,因此A100一举又占据了算力的高地。我们认为,Nvidia在算力提升上面的主要优势在于其系统工程能力较强。我们之前分析过,Nvidia在A100中使用的计算单元架构创新实际上并不新鲜,在人工智能硬件领域已经存在了多年,而且之前也有不少初创公司尝试过类似的实现。然而,当芯片的规模上升了之后,其设计流程就不仅仅是逻辑设计问题,还需要考虑良率、散热等多方面因素,而这些看似底层的因素其实在最顶层的架构设计过程中就要考虑到——换句话说,虽然其他人也能想到要用这些架构创新,但是因为各种问题就是没有办法实现A100这样能量产的巨型芯片,这其实也是Nvidia多年积累的一个壁垒。

事实上,我们认为算力只是Nvidia A100硬件竞争壁垒的一小部分,其更重要的壁垒还来自于互联、虚拟化等特性。互联和虚拟化特性都是云端数据中心场景中需要的重要需求,而这些需求的实现需要扎扎实实,一步一步的设计和积累。如果说之前Nvidia还没有引入虚拟化特性,云端AI加速芯片还是算力的比拼因此初创企业还有弯道超车机会的话,那么在A100之后我们认为其他和Nvidia针对相同市场的云端AI加速芯片初创公司已经失去了这个机会,而必须要一步一步把虚拟化、RDMA等分布式计算必须的特性老老实实地实现在自己的芯片上,才有资格去和Nvidia去正面交锋。对于云端计算市场,其他芯片厂商另外一种可能的策略就是针对Nvidia还无法顾及且GPU的SIMT架构无法很好覆盖的领域,例如FinTech的一些计算等等。我们预计在未来的几年内或许会出现更多这样的初创公司。

对于GPU国产化的启示:算力并非一切,对于分布式计算和虚拟化的支持也很重要

这次Nvidia发布的A100 GPU对于用于云端数据中心的GPU国产化也有重要启示,即算力并非一切,对于分布式计算的支持和多用户虚拟化的支持可能更加重要。

在目前的云端高性能计算中,一大部分的任务会使用分布式计算。在分布式计算中,单卡GPU的算力只是基础,除了算力之外的IO也会成为决定性能的重要因素。这里的IO包括单机多卡之间的通信,GPU和CPU之间的通信,以及多台主机之间的通信等。在Nvidia的技术栈中,单机多卡通信有NvLink,多机通信有来自于新近收购的Mellanox的RDMA和Smart NIC技术,可以说在IO领域Nvidia也是做到了全球最领先,这样才保证了云端GPU方案独步天下。

与分布式计算息息相关的则是虚拟化支持。如前所述,GPU虚拟化将能带来云计算领域的GPU资源利用率大幅提升。然而,除了利用率提升之外,虚拟化的访问模型还为分布式计算的软件栈提供了一个干净的接口,这样分布式系统的工程师可以不用关心GPU底层的实现细节,凭借虚拟化的概念就可以构建灵活的多用户使用模型和界面,从而在系统层面上为高效分布式系统提供了有力的支持和赋能。我们认为,目前GPU虚拟化还处于早期阶段,未来我们将会看到Nvidia以及其他的欧美厂商在这个方向的投入。

对于国产GPU来说,我们一直在强调要构建一个好的生态,才能让国产GPU真正具有竞争力。这样的生态首先包括一个可扩展性良好的架构——这就指向了IO这样的数据通信互联的支持;此外还需要有一个较友好容易上手的开发环境,能允许开发者在硬件基础上开发各种支持多用户的云端应用,虚拟化就是对多用户支持的核心组件。我们认为,一个算力强大,但是对于分布式计算和虚拟化支持有限的GPU,对于国产生态而言还不如一个虽然算力较弱(例如只有Nvidia一半甚至三分之一),但是在分布式和多用户场景有合理完整支持的GPU。而这两者恰恰需要一步一步扎实的积累,不能指望弯道超车。
半导体行业观察
半导体行业观察

最有深度的半导体新媒体,实时、专业、原创、深度,30万半导体精英关注!专注观察全球半导体最新资讯、技术前沿、发展趋势。

产业AI芯片NVIDIA
相关数据
寒武纪机构

寒武纪科技是全球智能芯片领域的先行者,宗旨是打造各类智能云服务器、智能终端以及智能机器人的核心处理器芯片。公司创始人、首席执行官陈天石教授,在处理器架构和人工智能领域深耕十余年,是国内外学术界享有盛誉的杰出青年科学家,曾获国家自然科学基金委员会“优青”、CCF-Intel青年学者奖、中国计算机学会优秀博士论文奖等荣誉。 团队骨干成员均毕业于国内顶尖高校,具有丰富的芯片设计开发经验和人工智能研究经验,从事相关领域研发的平均时间达七年以上。 寒武纪科技是全球第一个成功流片并拥有成熟产品的智能芯片公司,拥有终端和服务器两条产品线。2016年推出的寒武纪1A处理器(Cambricon-1A)是世界首款商用深度学习专用处理器,面向智能手机、安防监控、可穿戴设备、无人机和智能驾驶等各类终端设备,在运行主流智能算法时性能功耗比全面超越CPU和GPU,与特斯拉增强型自动辅助驾驶、IBM Watson等国内外新兴信息技术的杰出代表同时入选第三届世界互联网大会评选的十五项“世界互联网领先科技成果”。目前公司与智能产业的各大上下游企业建立了良好的合作关系。在人工智能大爆发的前夜,寒武纪科技的光荣使命是引领人类社会从信息时代迈向智能时代,做支撑智能时代的伟大芯片公司。

http://www.cambricon.com
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

云计算技术

云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

5G技术

第五代移动通信系统(5th generation mobile networks),简称5G,是4G系统后的延伸。美国时间2018年6月13日,圣地牙哥3GPP会议订下第一个国际5G标准。由于物理波段的限制,5G 的网络也将会与其他通信技术并用,包含长距离的其他传统电信波段。

端AI芯片技术

AI芯片部署的位置有两种:云端、终端。所以根据部署的位置不同,AI芯片可以分为:云AI芯片、端AI芯片。终端,即手机、安防摄像头、汽车、智能家居设备、各种IoT设备等执行边缘计算的智能设备。终端的数量庞大,而且需求差异较大。

暂无评论
暂无评论~