时讯:IPU:为何为AI处理器带来了一种颠覆性架构

英国半导体之父、Arm的联合创始人Hermann爵士这样说:“在计算机历史上只发生过三次革命,一次是70年代的CPU,第二次是90年代的GPU,而Graphcore就是第三次革命。”这里指的就是Graphcore率先提出了为AI计算而生的IPU。

不久前,Graphcore高级副总裁兼中国区总经理卢涛先生和Graphcore中国销售总监朱江先生,向电子产品世界等媒体介绍了:①IPU的架构及应用,②对AI芯片的走向预测,③如何做AI芯片的思考。


(资料图片)

Graphcore高级副总裁兼中国区总经理卢涛(左)和Graphcore中国销售总监朱江

Graphcore总部在英国,目前全球有450名员工。公司已获大量投资,截止到2020年6月,Graphcore总共融资超过4.5亿美元。

Graphcore主要产品是IPU。Graphcore认为,由于CPU和GPU不是为了满足机器学习的计算需求而设计,因此尽管进化,创新者却开始因硬件阻碍而倒退。而Graphcore创建了一种全新的处理器,是第一个专为机器学习工作负载而设计的处理器——智能处理器(IPU)。

Graphcore现有的IPU的表现及下一代的模型上,性能领先于GPU:在自然语言处理方面的速度能够提升20%~50%;在图像分类方面,能够有6倍的吞吐量而且是更低的时延;在一些金融模型方面的训练速度能够提高26倍以上。目前,IPU在一些云上、客户自建的数据中心服务器上已经可用。

相比GPU及其他与GPU类似的处理器架构,IPU有2个亮点设计。

1)CPU是在控制方面做了很多工作的、非常通用化的处理器,也就是说一个标量的处理器。GPU是一个向量处理器,有单指令、多数据的特点,适合处理大规模的、稠密的数据,在某一类的AI运算里会有非常明显的优势,这也是现在GPU在市场上表现非常好的一个原因。而IPU是一个全新的架构设计,是一种图形的处理器,具备多指令、多数据的特点。除了稠密的数据之外,现在代表整个AI发展方向的大规模稀疏化的数据,在IPU上处理就会有非常明显的优势。这是从大规模并行的角度来讲IPU的特点。

2)IPU采用的大规模分布式的片上SRAM的架构,这与GPU、CPU是完全不同的。Graphcore IPU抛弃了外部的DDR,把所有的memory都放到片上,因此能够解决在目前机器学习中大量出现的内存带宽会构成的瓶颈。

在场景应用方面,由于采用了分组卷积这种新型的卷积,和ResNet这种目前比较传统的相比,可以有更好的精度方面的表现。但这样的分组卷积因为数据不够稠密,在GPU上可能效果并不好,那么IPU就为客户提供了这样一种可能性,可以把这样的模型真正地落地使用,尤其是在一些垂直行业诸如金融领域提升应用的性能。

Graphcore所做的产品包括了硬件、软件和IPU的系统解决方案(如下图)。

1硬件:IPU处理器

机器智能代表的是全新的计算负载,有一些特点:它是非常大规模的并行计算;是非常稀疏的数据结构。AI或机器智能相较于传统的科学计算或者高性能计算(HPC)有个特点,就是低精度计算;另外像在做训练推理过程中的数据参数复用、静态图结构都是AI应用代表的一些全新的计算负载。

从2016年至今,整个AI算法模型发展基本上从2016年1月的ResNet50的2500万个参数,到2018年10月BERT-Large的3.3亿个参数,2019年GPT2的15.5亿个参数,呈大幅增长的趋势。甚至现在有一些领先的科研机构和AI研究者在探索着更大的算法模型,希望用一些复杂的模型能够训练更复杂的算法,并提高精度。但是现在的密集计算并不是特别可持续的,因为譬如要从15.5亿规模扩展到1万亿,计算方面的提高是指数级,即数倍算力的提升,这就需要一种全新的方法来做AI计算。

但是在当前,机器学习采用的还是传统处理器架构,例如CPU,目前还是有很多AI负载架构在CPU之上。CPU实际是针对应用和网络进行设计的处理器,是标量处理器。

后来出现的GPU是针对图形和高性能计算,以向量处理为核心的处理器,从2016年到现在被广泛应用在AI里。

但AI是一个全新的应用架构,它底层表征是以计算图作为表征的,所以可能需要一种全新的处理器架构,而Graphcore IPU就是针对计算图的处理来设计的处理器。

过去提到摩尔定律和算力,处理器现在是1个teraflops(每秒1万亿次浮点运算)、10个teraflops甚至100个teraflops,算力提升非常快。但人们发现,有效的算力其实远远达不到算力的峰值,中间内存的带宽是非常限制性能的。

例如,处理器算力提高了10倍,内存怎样提高10倍的性能呢?如果用传统的DDR4、DDR5、HBM、HBM1、HBM2、HBM3内存等,基本上每代只能有30%、40%的提升,因此,这是一个非常大的挑战。

所以在Graphcore做IPU的时候,在这部分做了一个特别的设计:与传统的CPU、GPU比较起来,IPU用了大规模并行MIMD的处理器核,另外做了非常大的分布式的片上的SRAM,在片内能做到300MB的SRAM,相对CPU的DDR2的子系统,或相对于GPU的GDDR、HBM,IPU能够做到10~320倍的性能提升(如下图)。从时延的角度来看,与访问外存相比较,时延只有1%,可以忽略不计。

再从整体上看一下IPU处理器,目前已经量产的是GC2处理器,是16nmTSMC的工艺。该处理器目前片内有1216个IPU-Tiles,每个Tile里有独立的IPU核作为计算及In-Processor-Memory(处理器之内的内存)。所以整个GC2共有7296个线程,能够支持7296个程做并行计算。对整片来说,In-Processor-Memory总共是300MB。所以IPU的整个思想是所有的模型要被放在片内处理。PCIe也是16个PCIeGen 4。

在各个核心之间做了BSP的同步,能支持在同一个IPU之内1216个核心之间的通信,以及跨不同的IPU之间做通信。这都是通过BSP的同步协议或接口来做的,中间有一个非常高速的IPU exchange的8TB/s的多对多的交换总线。

另外在IPU和IPU之间有80个IPU-Links,总共有320GB/s的芯片与芯片之间的带宽。这样,同一个处理器就同时支持了训练和推理。

所以,IPU GC2是非常复杂的拥有236亿个晶体管的芯片处理器,在120W的功耗下有125TFlops的混合精度、1216个独立的处理器核心(Tile)、300M的SRAM能够把完整的模型放在片内,另外内存的带宽有45TB/s、片上的交换是8TB/s,片间的IPU-Links是2.5Tbps。

IPU GC2有1216个核心(Tile)、7000多个线程,所以解决并行硬件的高效编程问题是一个非常大的课题。Graphcore采用构建大规模数据中心集群的BSP技术(Bulk Synchronous Parallel,大容量同步并行),这种技术目前在谷歌、Facebook、百度这样的大规模数据中心都在使用。

因此,IPU是业界第一款BSP处理器,通过硬件能支持BSP协议,并通过BSP协议把整个计算逻辑分成计算、同步、交换(如下图)。对软件工程师或开发者,这就是非常易于编程的,因为这样就不用处理locks这个概念。对用户来说,也不用管其中是1216个核心(Tile)还是7000多个线程、任务具体在哪个核上执行,所以这是一个非常用户友好的创新。

2 软件:Poplar® SDK

不管芯片架构怎么样,真正提供用户体验的还是SDK(软件开发包),包括可用性如何、用户和研究者是否能方便地在这个系统上进行开发、移植、优化。

2020年5月,全球知名科技分析机构Moor Insights & Strategy发表了一篇研究论文《Graphcore的软件栈:Build To Scale》,并且给了一个非常高的评价。他们认为Graphcore是目前他们已知的唯一一家将产品扩展到囊括如此庞大的部署软件和基础架构套件的初创公司。

Poplar是软件栈的名称,是架构在机器学习的框架软件(例如TensorFlow、ONNX、PyTorch和PaddlePaddle)和硬件之间的一个基于计算图的整套工具链和一些库。目前已经提供750个高性能计算元素的50多种优化功能,支持标准机器学习框架,如TensorFlow 1、2,ONNX和PyTorch,很快也会支持PaddlePaddle。

部署方面,目前可以支持容器化部署,能够快速启动并且运行。标准生态方面,能够支持Docker、Kubernetes,还有像微软的Hyper-v等虚拟化的技术和安全技术。

操作系统方面,目前支持最主要的3个Linux的发行版:ubuntu、RedHat Enterprise Linux、CentOS(如下图)。

在社区及支持方面,Graphcore有Github、GraphcoreSupport,在StackOverflow上也有针对IPU开发者的知识门户网站,在知乎上也开辟了新的创新者社区,未来将有更多深度文章通过知乎来呈现给开发者和用户。

3IPU系统的应用

仅仅在今年5月,Graphcore就有如下新进展。

5月12日,在OCP Global Summit上,阿里巴巴异构计算首席科学家张伟丰博士宣布了Graphcore支持ODLA的接口标准。接着5月20日,在百度Wave Summit2020上,百度集团副总裁吴甜女士宣布Graphcore成为飞桨硬件生态圈的创始成员之一,双方签署了倡议书。

另外,5月27日,在英国Intelligent Health峰会上,微软机器学习科学家分享了使用IPU训练CXR模型的卓越性能。可以看到IPU在运行微软COVID-19影像分析的算法模型的时候表现是非常抢眼的,能够在30分钟之内完成在NVIDIA GPU上需要5个小时的训练工作量。

Graphcore IPU在垂直领域的应用主要在四方面:金融领域,医疗和生命科学,电信领域,在云和数据中心以及互联网方面的应用。

以下重点介绍一下电信领域。电信是一个非常大的行业,尤其是现在以5G为代表的创新给整个行业和社会都带来了非常重大的收益。在智慧网络、5G创新、预测性维护和客户体验方面,都可以用到IPU的创新技术和能力。例如,机器智能可以帮助分析无线数据的变化,采用LSTM(长短期记忆)模型来预测未来性能促进网络规划。从下图可以看到拓扑量的情况,基于时间序列分析,采用IPU能够比GPU有260倍以上的提升(如下图)。

另外在5G里有网络切片的概念。网络切片和资源管理是5G里面的一个特色,需要大量去学习一些没有标记过的数据,属于强化学习的范畴。IPU在强化学习方面有非常明显的优势。在IPU上运行强化学习策略,在训练方面的吞吐量能够提高最多13倍(如下图)。

在创新的客户体验方面,采用AI方面的技术主要是自然语言处理(NLP)方面一些最新的技术,这些技术可以大大提升客户互动、客户服务方面的体验。其中非常有代表性的就是BERT(双向编码器表示)。Graphcore目前在BERT上面训练的时间能够比GPU缩短25%以上,这是非常明显的提升(如下图)。

机器人领域,Graphcore跟伦敦帝国理工学院有一个合作,主要是用一些空间的AI以及空间的及时定位和地图构建技术,帮助机器人做比较复杂的动作和更高级的功能。在这个里面会需要一些稀疏概率、图的几何推理还有神经网络计算方面的一些能力。

在以上场景里面,通信和计算同样重要,并且客户需要用到低时延的特性,也需要用到很高的功耗效率,这些都是在机器人这个领域所关注的。

42020年AI市场预测

1)AI是否在遭遇低潮?

前段时间做AI的Wave Computing公司破产了,它以前也是明星企业,因此有人认为AI正在遭遇一个低潮?

Graphcore认为,全球AI并没有走向低潮,2020年反而会有很大的发展。因为尤其是自然语言处理相关的一些应用起来之后,会催生大量各种各样的应用,在算力方面会有很大的提升。现在一般的CV类的模型几兆的参数、几百万或者几千万的参数,而且大的一些NLP的模型现在都是1亿、10亿、100亿。这对算力的要求是指数级的。所以我们认为其实AI领域并没有遇到寒冬。

但如果回到AI处理器这个圈子,有这样一个问题:中间的AI的算力平台。因为人们都做的是AI处理器,处理器从芯片设计到落地,中间是有很多gap(挑战)的。芯片出来只是第一部分,出来之后上面是不是有比较好的工具链,是不是能够有较为丰富的软件库支撑一些主流的算法,以及是不是能够跟主流的机器学习框架无缝地连接,最后对用户展现的是比较好的可移植性或可开发性,还有可部署性,还有很多Gap是看不到的,所以整个链条全部打通需要非常大的投入。

回到AI处理器领域,基本上有两类公司会较为困难:第一类是处理器还没有做出来的,如果现在还没有做出来,基本上公司就非常困难。第二类如果有了处理器,但是对软件不够重视,投入不够,未来会面临困难的局面。

2)AI可能有三种计算平台

关于AI处理器市场,未来AI计算将有三种主要的计算平台:第一种平台是CPU,它还会持续存在,因为一些业务在CPU上的表现依然不错;第二种平台是GPU,它还会持续发展,会有适合GPU的应用场景。第三种平台是就是Graphcore的IPU。“IPU旨在帮助创新者在AI应用上实现新的突破,帮助用户应对当前在CPU、GPU上表现不太好的任务或者阻碍大家创新的场景。”卢涛副总指出。

3)AI训练市场格局

在AI训练市场,过去有几家厂商想挑战英伟达,Graphcore在这个市场有没有一些目标?

目前GPU在全球已是大规模的商用部署,其次是Google的TPU通过内部应用及TensorFlow的生态占第二大规模,IPU处于第三,是量产的、部署的平台。

4)AI的三类解决方案

Graphcore的首席执行官Nigel Toon认为,AI有三类解决方案。第一类是一些非常简单的小型化的加速产品,用在手机、传感器或者摄像头里面。但这对厂商也有比较大的挑战,算法也在演进。解决一个问题,然后会有新的问题出来。

第二类是ASIC,可能是对一些超大规模的公司,有超大规模的一类问题要解决,比如谷歌的TPU是一个例子,它用数学加速器来解决具体的问题。

第三类是可编程的处理器,目前还只是GPU的市场。Graphcore是在这个分类里面,但未来还是会有非常多其他的应用场景。Graphcore要做非常灵活的处理器,未来会有自己的领域和赛道。

5如何做AI芯片

1)性能的提升思路

在制造“运行速度更快,功耗和制造成本更低、体积更小”的芯片方面,Graphcore是如何做的?

实际上,离开了具体的应用来谈这些是没有前提的。我们需要看针对某一个应用,它的性价比、收益方面是怎么样的。如果这样来看,会抛开从16nm、12nm、7nm、5nm这样每一代的工艺能给芯片带来多少的收益,而是要看针对某个AI应用做了架构上的设计后,在这一类的应用中提高了多少性能收益,即看性价比、性能和功耗比、性能和制造成本比,怎样给用户代来更高的收益。总体来看,业界会持续保持架构上的创新,来应对当前和未来AI创新者、研究者在提高应用性能方面的诉求。

2)如何平衡产出比

投入成本高、门槛高、周期长、回报率低是芯片产业普遍要翻越的几座大山,Graphcore有什么好的策略?

这需要有非常好的执行力、非常好的战略上的耐心和韧性。而且还可能有一个很现实的问题:可能持续耕耘几代产品之后才能有一个较大的市场份额。所以这个周期可能比很多人想象的更长。如果从AI芯片的研发成本周期和回报率方面,需要看的是AI的具体应用,例如是数据中心还是终端的,它们可能非常不同。Graphcore做大规模高性能、面向数据中心的处理器这方面会有更多经验。

那么一款芯片的研发成本,都有哪些?①购买工具的成本。②如果内部IP机能较少,要购买IP,成本也在千万美元级别。③如果没有后端设计工艺,就需要依靠Broadcom、IBM、TI这样的公司提供帮助。比较新一些的工艺又要涉及到高昂成本。④人力方面的投入,一般做一款AI处理器的团队要在100人左右,且只能做一款产品。如果要保持像目前头部厂商这样的迭代速度,可能要并行做好几款产品,这也是很大的成本投入。⑤如果经验比较丰富,可能一版能成功;如果不成功,又需要做好几版,这又是很大的成本投入。

关于回报率,要看整个人员、花销的情况来计算达到多少营收时,可以打破财务盈亏点。

至于AI芯片的性价比方面是跟应用强相关的。如果有一些应用,能做到5倍、10倍、20倍的性能,性价比的问题就会较为简单。

3)应用如何落地

落地难、落地速度慢是AI公司的普遍困境。那么,落地具体“难”在哪里?

难点在于AI是非常场景化的应用。如果你是一家互联网公司,可能有几个很大的应用场景,每个量都会很大。但是如果你是一家AI算法公司,最难的肯定是场景化的应用。AI在当前是非常依赖场景化的应用。场景化其实就是碎片化。

实际上,一些具备很吸引人性能的芯片,距离真正的商业化还有1年、1年半的差距。所以是不是有平台化的软件支撑,是不是有大规模商用部署软件的支撑,最后是不是有真正的算法在这样的一个平台软件上能落地。这是商业化的一个标准。

4)新冠疫情的影响

今年的新冠肺炎疫情对整个AI芯片的落地有利好和不利好。利好是这个疫情在全球推动了数字化的加速。很多企业主,或者是用户企业,会看到数字化是有好处的。长期来看,对整个数字经济是一个非常利好的事情,也会导致数据中心等算力基础设施的建设。

关键词: