当前位置:主页 > flash模块 >

为何IPU带来了AI处理器的一次革命

时间:2020-06-22 10:51 来源:未知 作者:QQ克隆

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

本文引用地址:http://www.eepw.com.cn/article/202006/414493.htm

image.png

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

截止到2020年6月,Graphcore总共融资超过4.5亿美元。

不久前,Graphcore销售副总裁兼中国区总经理卢涛先生和Graphcore中国销售总监朱江先生,向电子产品世界等媒体介绍了这种新型的IPU及应用。

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

Graphcore所做的产品包括了硬件、软件和IPU的系统解决方案。硬件指的是做了专门为AI的应用处理设计的IPU处理器;软件指的是在IPU处理器之上架构的POPLAR软件栈及开发工具;IPU系统解决方案指的是人们可以通过本地访问或者云的方式来访问一些渠道合作伙伴的方案。

image.png

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

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就是针对计算图的处理来设计的处理器。

过去提到摩尔定律和算力,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处理器,是16nm TSMC的工艺。该处理器目前片内有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多个线程、任务具体在哪个核上执行,所以这是一个非常用户友好的创新。

image.png

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开发者的知识门户网站,在知乎上也开辟了新的创新者社区,未来将有更多深度文章通过知乎来呈现给开发者和用户。

image.png

3 IPU系统解决方案

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

5月12日,在OCPGlobal 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以及空间的及时定位和地图构建技术,帮助机器人做比较复杂的动作和更高级的功能。在这个里面会需要一些稀疏概率、图的几何推理还有神经网络计算方面的一些能力。

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

image.png

4 2020年AI整体应用预测

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

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

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

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

关于整体AI处理器市场,未来在AI计算里面可能是会有三个源。

第一个源是CPU。CPU还会持续存在,因为有一些业务其实在CPU上表现还是不错的。

第二个源是GPU。GPU肯定还会持续创新、持续发展。而还会有大量的AI处理器的创业公司,都是想做一个更好的GPU。

Graphcore的愿景是,IPU成为第三个源。Graphcore更加期望的是,IPU能够帮助人们应对一些在当前在GPU、CPU上表现不太好的、或者是阻碍了人们创新的一些场景。

而市场上有些收购,例如Intel收购Habana,其实是Intel想做更好的GPU。那么对于任何一家想做更好的GPU的AI处理器厂商都是要思考同样的问题:在面对同类型巨头的时候如何生存。

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

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

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

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

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

image.png

5 如何做AI芯片

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

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

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

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

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

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

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

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

image.png

Graphcore的卢涛先生认为,难点在于AI是非常场景化的应用。如果说你是一家互联网公司,可能你能有几个很大的应用场景,然后每一个量都会很大。但是如果你是一家AI算法公司,最难的肯定是场景化的一个应用。AI在当前是场景化非常严重的应用。场景化其实就是碎片化。

对一个AI芯片来说,真正的商业化的衡量标准就是几点:①你是不是能有这个支持AI的继续学习的平台软件、支持得怎么样。②大规模部署的这些软件,对Docker、虚拟化的支持如何。如果这两块支持得比较好,那就能有真正的算法应用能落地。③产品化的部署,达成真正的商业化。

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

那么,今年年初开始的新冠肺炎疫情对于AI芯片的落地,有没有带来一些影响?

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