所在的位置: C++ >> C++市场 >> 详解AI加速器四GPUDPUIP

详解AI加速器四GPUDPUIP

选自Medium

作者:AdiFuchs

机器之心编译

在文章中,前苹果工程师、普林斯顿大学博士AdiFuchs聚焦AI加速器的秘密基石:指令集架构ISA、可重构处理器等。在这篇文章中,我们将跟着作者的思路回顾一下相关AI硬件公司,看看都有哪些公司在这一领域发力。

这是本系列博客的第四篇,主要介绍了AI加速器相关公司。全球科技行业最热门的领域之一是AI硬件,本文回顾了AI硬件行业现状,并概述相关公司在寻找解决AI硬件加速问题的最佳方法时所做的不同赌注。

对于许多AI硬件公司来说,最近几年似乎是AI硬件发展的黄金时代;过去三年英伟达股价暴涨约+%,超越英特尔成为全球市值最高的芯片公司。其他创业公司似乎同样火爆,在过去几年中,他们已花费数十亿美元资助AI硬件初创公司,以挑战英伟达的AI领导地位。

AI硬件初创公司-截至年4月的总融资。图源:AnandTech

此外,还有一些有趣的收购故事。年,英特尔以3.5亿美元收购了Nervana,年底又收购了另一家名为Habana的人工智能初创公司,该公司取代了Nervana提供的解决方案。非常有意思的是,英特尔为收购Habana支付了20亿美元的巨款,比收购Nervana多好几倍。

AI芯片领域,或者更准确地说,AI加速器领域(到目前为止,它已经不仅仅是芯片)包含了无数的解决方案和方法,所以让我们回顾这些方法的主要原则。

AI加速器不同实现方法

英伟达:GPU+CUDA

如果你在耕地,你更愿意使用哪个?两只壮牛还是只鸡?(西摩克雷)

英伟达成立于年,是最早研究加速计算的大公司之一。英伟达一直是GPU行业的先驱,后来为游戏机、工作站和笔记本电脑等提供各种GPU产品线,已然成为世界领导者。正如在之前的文章中所讨论的,GPU使用数千个简单的内核。相比来说,CPU使用较少的内核。

最初GPU主要用于图形,但在年代中后期左右,它们被广泛用于分子动力学、天气预报和物理模拟等科学应用。新的应用程序以及CUDA和OpenCL等软件框架的引入,为将新领域移植到GPU铺平了道路,因此GPU逐渐成为通用GPU(General-PurposeGPU),简称GPGPU。

ImageNet挑战赛:使用GPU的获胜误差和百分比。图源:英伟达

从历史上看,人们可能会说英伟达是幸运的,因为当CUDA流行和成熟时,现代AI就开始了。或者有人可能会争辩说,正是GPU和CUDA的成熟和普及使研究人员能够方便高效地开发AI应用程序。无论哪种方式,历史都是由赢家书写的——事实上,最有影响力的AI研究,如AlexNet、ResNet和Transformer都是在GPU上实现和评估的,而当AI寒武纪爆发时,英伟达处于领先地位。

SIMT执行模型。图源:英伟达

GPU遵循单指令多线程(SIMT)的编程模型,其中相同的指令在不同的内核/线程上并发执行,每条指令都按照其分配的线程ID来执行数据部分。所有内核都以帧同步(lock-step)方式运行线程,这极大地简化了控制流。另一方面,SIMT在概念上仍然是一个多线程类c的编程模型,它被重新用于AI,但它并不是专门为AI设计的。由于神经网络应用程序和硬件处理都可以被描述为计算图,因此拥有一个捕获图语义的编程框架会更自然、更有效。

虽然从CPU转向GPU架构是朝着正确方向迈出的一大步,但这还不够。GPU仍然是传统架构,采用与CPU相同的计算模型。CPU受其架构限制,在科学应用等领域逐渐被GPU取代。因此,通过联合设计专门针对AI的计算模型和硬件,才有希望在AI应用市场占有一席之地。

英伟达的GPU、CPU和DPU路线图。图源:英伟达

英伟达主要从两个角度发展AI:(i)引入TensorCore;(ii)通过收购公司。比如以数十亿美元收购Mellanox,以及即将对ARM的收购。

ARM-NVIDIA首次合作了一款名为「Grace」的数据中心CPU,以美国海军少将、计算机编程先驱GraceHopper的名字命名。作为一款高度专用型处理器,Grace主要面向大型数据密集型HPC和AI应用。新一代自然语言处理模型的训练会有超过一万亿的参数。基于Grace的系统与NVIDIAGPU紧密结合,性能比目前最先进的NVIDIADGX系统(在x86CPU上运行)高出10倍。

Grace获得NVIDIAHPC软件开发套件以及全套CUDA和CUDA-X库的支持,可以对多个GPU应用程序加速。

Cerebras

Cerebras成立于年。随着AI模型变得越来越复杂,训练时需要使用更多的内存、通信和计算能力。因此,Cerebras设计了一个晶圆级引擎(WSE),它是一个比萨盒大小的芯片。

AndrewFeldman。图源:IEEEspectrum

典型的处理芯片是在一块称为晶圆的硅片上制造的。作为制造过程的一部分,晶圆被分解成称为芯片的小块,这就是我们所说的处理器芯片。一个典型的晶圆可容纳数百甚至数千个这样的芯片,每个芯片的尺寸通常在10平方毫米到平方毫米左右。NVIDIA的AGPU被认为是最大的芯片,尺寸平方毫米,可以封装亿个晶体管,为大约个处理核心提供动力。

CerebrasWSE-2与NVIDIAA规格比较。图注:BusinessWire

Cerebras不仅在单个大芯片上提供超级计算机功能,而且通过与学术机构和美国国家实验室的合作,他们还提供了软件堆栈和编译器工具链。其软件框架基于LAIR(Linear-AlgebraIntermediateRepresentation)和c++扩展库,初级程序员可以使用它来编写内核(类似于NVIDIA的CUDA),还可用于无缝降低来自PyTorch或TensorFlow等框架的高级Python代码。

总而言之,Cerebras的非传统方法吸引了许多业内人士。但是更大的芯片意味着内核和处理器因缺陷而导致失败的可能性更高,那么如何控制制造缺陷、如何冷却近百万个核心、如何同步它们、如何对它们进行编程等等都需要逐个解决,但有一点是肯定的,Cerebras引起了很多人的注意。

GraphCore

GraphCore是首批推出商业AI加速器的初创公司之一,这种加速器被称为IPU(IntelligentProcessingUnit)。他们已经与微软、戴尔以及其他商业和学术机构展开多项合作。

目前,GraphCore已经开发了第二代IPU,其解决方案基于一个名为Poplar的内部软件堆栈。Poplar可以将基于Pytorch、Tensorflow或ONNX的模型转换为命令式、可以兼容C++的代码,支持公司提倡的顶点编程(vertexprogramming)。与NVIDIA的CUDA一样,Poplar还支持低级C++编程以实现更好的潜在性能。

第二代IPU芯片图。图源GraphCore

IPU由tiled多核设计组成,tiled架构由MIT于年代初研发,该设计描述了复制结构的2D网格,每个网格都结合了网络交换机、小型本地内存和处理核心。第一代IPU有个tile,目前第二代IPU有个tile。每个IPU内核最多可以执行6个线程,这些线程是包含其专有指令集架构(ISA)的代码流。

IPU采用的是大规模并行同构众核架构。其最基本的硬件处理单元是IPU-Core,它是一个SMT多线程处理器,可以同时跑6个线程,更接近多线程CPU,而非GPU的SIMD/SIMT架构。IPU-Tiles由IPU-Core和本地的存储器(KBSRAM)组成,共有个。因此,一颗IPU芯片大约有MB的片上存储器,且无外部DRAM接口。连接IPU-Tiles的互联机制称作IPU-Exchange,可以实现无阻塞的all-to-all通信,共有大约8TB的带宽。最后,IPU-Links实现多芯片互联,PCIe实现和HostCPU的连接。

可重构数据流

WaveComputing、SambaNova和SimpleMachines是三家推出加速器芯片的初创公司。其中WaveComputing成立于年,其使命是「通过可扩展的实时AI解决方案,从边缘到数据中心革新深度学习」,该公司由DadoBanatao和PeteFoley创立。一段时间以来,它一直处于隐身模式,从各种来源获得资金。

WaveComputing的核心产品是数据流处理器单元(DPU),采用非冯诺依曼架构的软件可动态重构处理器CGRA(Coarsegrainreconfigurablearray/accelerator)技术,适用于大规模异步并行计算问题。年前后,WaveComputing针对边缘计算市场的算力需求,将MIPS技术与Wave旗下WaveFlow和WaveTensor技术相结合,推出TritonAI64IP平台。但不幸的是,它在年申请了破产保护。

基于时间的DPU核映射。图源:WaveComputing

SambaNova成立于年底,自那以来,该公司获得了由GoogleVentures,IntelCapital和Blackrock领导的三轮融资以及在美国能源部的LaurenceLivermore和LosAlamos的部署。他们现在已经可以为一些客户提供新产品。

SambaNova的RDU框图。

SambaNova正在为数据中心构建芯片和软件栈,目标是用AI进行推理和训练。其架构的核心是可重构数据流单元(RDU,reconfigurabledataflowunit)。RDU芯片包含一组计算单元(称为PCU)和暂存器存储单元(称为PMU),它们以2D网格结构组织起来,并与NoC交换机连接。RDU通过一组称为AGU和CU的单元结构访问芯片外存储器。

SambaNova的关键用例。图源:HPCWire

SambaNova的软件堆栈(称为Sambaflow)采用高级Python应用程序(例如PyTorch、TensorFlow)并将它们降低为可以在编译时对芯片PCU、PMU、AGU和CU进行编程的表示。SambaNova展示了RDU架构可以运行复杂的NLP模型、推荐模型和高分辨率视觉模型。

SimpleMachines由威斯康星大学的一群学术研究人员于年创立。该研究小组一直在探索依赖于结合冯诺依曼(逐条指令)和非冯诺依曼(即数据流)执行的异构数据路径的可重构架构。

该公司提供的数据均参考了在顶级学术会议和期刊发表的原创研究论文。指导架构原则有点类似于SambaNova正在做的事情,即开发一个可重新配置的架构,以支持非常规编程模型,实现能够应对高度变化的AI应用程序空间的灵活执行。

SimpleMachines的Mozart芯片。图源:SimpleMachines

该公司的首个AI芯片是Mozart,该芯片针对推理进行了优化,在设计中使用了16纳米工艺,HBM2高带宽内存和PCIeGen3x16尺寸。年,SimpleMachine发布了第一代加速器,该加速器基于Mozart芯片,其由一个可配置的tile数组组成,它们依赖于控制、计算、数据收集等的专业化。

脉动阵列+VLIW:TPUv1、Groq、Habana

TPU

世界上首个专门为AI量身定制的处理器之一是张量处理单元(TPU),也称张量处理器,是Google开发的专用集成电路(ASIC),专门用于加速机器学习。自年起,谷歌就已经开始在内部使用TPU,并于年将TPU提供给第三方使用,既将部分TPU作为其云基础架构的一部分,也将部分小型版本的TPU用于销售。

第一代TPU体系架构。图源:arXiv

第一代TPU是一个8位矩阵乘法的引擎,使用复杂指令集,并由主机通过PCIe3.0总线驱动,它采用28nm工艺制造。TPU的指令向主机进行数据的收发,执行矩阵乘法和卷积运算,并应用激活函数。

第二代TPU于年5月发布,值得注意的是,第一代TPU只能进行整数运算,但第二代TPU还可以进行浮点运算。这使得第二代TPU对于机器学习模型的训练和推理都非常有用。谷歌表示,这些第二代TPU将可在Google计算引擎上使用,以用于TensorFlow应用程序中。

第三代TPU于年5月8日发布,谷歌宣布第三代TPU的性能是第二代的两倍,并将部署在芯片数量是上一代的四倍的Pod中。

第四代TPU于年5月19日发布。谷歌宣布第四代TPU的性能是第三代的2.7倍,并将部署在芯片数量是上一代的两倍的Pod中。与部署的第三代TPU相比,这使每个Pod的性能提高了5.4倍(每个Pod中最多装有4,个芯片)。

Groq

谷歌在云产品中提供了TPU,他们的目标是满足谷歌的AI需求并服务于自己的内部工作负载。因此,谷歌针对特定需求量身定制了TPU。

年,一个由TPU架构师组成的团队离开谷歌,他们设计了一种与TPU具有相似基线特征的新处理器,并在一家名为Groq的新创业公司中将其商业化。

GroqTSP执行框图。图源:Groq

Groq的核心是张量流处理器(TSP)。TSP架构与TPU有很多共同之处:两种架构都严重依赖脉动阵列来完成繁重的工作。与第一代TPU相比,TSP增加了向量单元和转置置换单元(在第二代和第三代TPU上也可以找到)。

GroqVLIW指令集和描述。图源:Groq

Habana

Habana成立于年初,是一家专注于数据中心训练和推理的AI加速器公司。Habana已推出云端AI训练芯片Gaudi和云端AI推理芯片Goya。

Goya处理器已实现商用,在极具竞争力的包络功率中具有超大吞吐量和超低的实时延迟,展现出卓越的推理性能。Gaudi处理器旨在让系统实现高效灵活的横向、纵向扩展。目前Habana正在为特定超大规模客户提供样品。

Goya、Gaudi架构图。图注:Habana

Goya和Gaudi芯片具有相似架构,它们都依赖于GEMM引擎,该引擎是一个脉动矩阵乘法单元,与一组tile并排工作。每个tile包含一个本地软件控制的暂存器内存和一个张量处理核心(TPC),具有不同精度的矢量计算单元,即它们可以计算8位、16位或32位的矢量化操作。TPC和GEMM引擎通过DMA和共享内存空间进行通信,并通过PCIe与主机处理器进行通信。

基于RISC的AI加速器

Esperanto

Esperanto成立于年,并在相当长一段时间内一直处于隐身模式,直到年底才宣布他们的第一款产品ET-SoC-1芯片,其基于台积电7nm工艺构建的SoC上集成了0多个RISC-V内核、MBYTE的SRAM和超过亿个晶体管,是该公司AI加速器系列的第一款产品。ET-SoC-1是一款推理加速器,预计在今年投产。

Esperanto的ET-SoC-1的架构图。图源:Esperanto/HotChips

TensTorrent

TensTorrent成立于年,总部位于加拿大多伦多,目前估值10亿美元,这是一家计算公司,开发旨在帮助更快和适应未来算法的处理器。TensTorrent提供的芯片系列不仅针对数据中心,也针对小型平台,此外,他们还提供DevCloud。

TensTorrent:图的并行性与张量切片。图源:YouTube/TensTorrent

TensTorrent核心。图源:YouTube/TensTorrent

Mythic

Mythic是AI硬件领域最早的初创公司之一,它成立于年。迈克亨利(MikeHenry)和戴夫菲克(DaveFick)为公司的核心创始人,他们分别担任Mythic公司的董事长和CTO。该公司非常重视具备能源效率和成本更低的模拟技术,Mythic提出了如何在模拟电路中使用较小的非数字电路电流来降低能量的消耗。

矩阵乘法运算中的权重和输入/输出数据差分。图源:Mythic

年底,Mythic推出了其第一代AI芯片MAMP。与很多AI芯片不同,M基于更加成熟的模拟计算技术,而非数字计算。这提高了M的能效,也使网络边缘设备访问更加容易。

Mythic还推出了一个模拟计算引擎(ACE,AnalogComputeEngine),它使用闪存而不是DRAM来存储权重。本质上,它们不是从内存中获取输入和权重数据,而是将输入数据传输到权重闪存,并将其转换为模拟域,在模拟域中执行MAC(multiply-and-accumulate)计算,并将其转换回以获取输出数据,从而避免从内存中读取和传输权重成本。

LightMatter

LightMatter是一家诞生于MIT的初创公司,该公司押注于一种用光子而非电子执行运算的计算机芯片。这种芯片从根本上与传统的计算机芯片相区分,有望成为能够满足AI「饥饿」的有力竞争者。LightMatter首席执行官尼克哈里斯(NickHarris)曾说:「要么我们发明的新计算机继续下去,要么人工智能放慢速度。」

光子学与电子学计算属性。图源:HotChips/LightMatter

LightMatter设计了一种基于脉动阵列的方法,通过使用编码为光信号波中不同相位的相移来操纵光子输入信号,以执行乘法和累加操作。由于光子学数据以光速流动,LightMatter芯片以非常高的速度执行矩阵和矢量化运算,并且功率可降低几个数量级。

LightMatter在年开始发售其首款基于光子的AI芯片——Envise,并为常规数据中心提供包含16个这种芯片的刀锋服务器。该公司目前已从GV(前GoogleVentures)、SparkCapital和MatrixPartners筹集到了万美元。

LightMatter声称,他们推出的Envise芯片的运行速度比最先进的NvidiaAAI芯片快1.5至10倍,具体根据任务的不同有所差异。以运行BERT自然语言模型为例,Envise的速度是英伟达芯片的5倍,并且仅消耗了其六分之一的功率。

Envise。图源:LightMatter

NeuReality

NeuReality是一家于年在以色列成立的初创公司,由Tanach、TzvikaShmueli和YossiKasus共同创立。

年2月,NeuReality推出了NR1-P,这是一个以AI为中心的推理平台。年11月,NeuReality宣布与IBM建立合作伙伴关系,其中包括许可IBM的低精度AI内核来构建NR1,这是一种非原型生产级服务器,与FPGA原型相比,AI应用程序效率更高。

NeuRealityNR1-P原型。图源:ZDNet

原文链接:


转载请注明:http://www.aierlanlan.com/rzdk/3330.html