报道(文/黄晶晶)一家来自英国的AI初创公司Graphcore,成立不过一年多时间,就融了超过4.5亿美金。投资方名单相当豪华:红杉资本、欧洲Atomico、以色列Pitango这些金融玩家,再加上宝马、Bosch、戴尔、微软、三星这样的产业巨头,资本追捧的热度可见一斑。
最近,Graphcore正式发布了第二代IPU芯片,以及基于这颗新处理器的全线产品,直接对标市面上主流的AI计算方案。从技术路线上看,Graphcore IPU走的是大规模并行同构众核架构,它的IPU Core本质上是一个SMT多线程处理器,能同时跑6个线程,这和GPU那套SIMD/SMIT的玩法完全不同。另一个关键差异是,Graphcore大量采用片上SRAM,不依赖外部DRAM,同时靠IPU-Fabric实现片间互联。到了第二代,SRAM存储容量、计算吞吐量和通信能力都又上了一个台阶。
Graphcore 第二代IPU三大碘伏性技术
第二代IPU芯片Colossus Mk2 GC200用了台积电7nm工艺,在计算、数据和通信三个维度实现了突破。无论是跟自己上一代比,还是和目前主流的GPU比,性能都很抢眼。Graphcore高级副总裁、中国区总经理卢涛对此做了详细解读。
计算
Colossus Mk2 GC200是目前世界上最复杂的单一处理器——集成将近600亿个晶体管,拥有250TFlops的AI-Float算力,以及900MB的片上存储。处理器内核从第一代的1217个提升到1472个独立的处理器内核,总共能跑将近9000个独立的并行线程。相比上一代,系统级性能提升了8倍以上。
片上存储从300MB提升到了900MB,每个IPU的Memory带宽是47.5TB/s。此外还集成了IPU-Exchange以及PCI Gen4与主机的交互接口,再加上IPU-Links提供的320GB/s芯片到芯片互联。

数据
IPU Exchange Memory本质上是一个交换式存储。如果拿它跟英伟达当前采用HBM技术的产品比,Graphcore在M2000每个IPU-Machine里通过IPU-Exchange-Memory技术,提供了超过100倍的带宽以及大约10倍的容量。对于处理越来越复杂的AI模型来说,这可不是一点半点的提升。
通信
这次Graphcore专门为AI横向扩展设计了IPU-Fabric结构,能做到2.8Tbps的超低延时,同时最多支持64000个IPU之间的横向扩展。IPU-Fabric本身还支持AI运算的集合通信或者说all-reduce操作,这也是它技术特性的核心之一。
目前Graphcore有三种产品形态:IPU-Machine,IPU服务器(已经在全球范围内完成了浪潮和戴尔IPU服务器的适配),以及大规模横向扩展的IPU-POD系统级产品。
IPU-Machine M2000是一个1U结构的即插即用计算刀片,集成了4个IPU Mk2 GC200处理器,总共有1PFlops的算力、近6000个处理器核心、超过35000个并行线程,片上存储达到3.6GB,Exchange Memory有450GB,加上2.8Tbps的IPU-Fabric超低延时通信。部署起来很方便,能应对当前最苛刻的机器智能工作负载。目前建议零售价是32,450美金。
IPU-M2000可以灵活组合,从1个到4个、8个,再到64个,最多可以扩展到64000个,它是构建超大规模、弹性AI计算集群的基本单元。
至于超算规模的IPU-POD,IPU-POD64是最基础的组件,支持16个IPU-M2000,可以根据不同工作负载灵活配置。目前支持的2D-Torus拓扑能最大化IPU-Link带宽,全缩减(all-reduce)效率比网状拓扑快两倍,这套架构可以一路扩展到64000个GC200 IPU。
因为把AI计算和逻辑控制做了解耦,所以非常易于部署,网络延时很低,能支持大型算法模型,也支持安全的多用户使用。按64000个IPU集群来算,总共能提供16个EFlops的FP16算力。卢涛提了一个很有意思的参照:日本前一阵发布的超算是0.5 EFlops,而我们基于64000个IPU能组建16个EFlops,这个算力规模确实惊人。
性能PK
IPU Mk2跟Mk1比,计算吞吐量峰值能力翻了两倍以上;数据方面,处理器内的有效存储提升了六倍以上,加上超过446GB的IPU-Machine流存储;通信方面,加入了专门为大规模横向扩展设计的IPU-Fabric技术。
片上存储从300MB到900MB,看着是三倍提升,但这里有个细节:片内存储分两部分,一部分给程序代码,一部分给模型的激活和权重。因为程序代码占用在Mk1和Mk2上一样多,所以实际给算法模型可用的权重和激活容量,算下来是六倍以上的有效存储。

系统级对比更有意思:用配备IPU-Link的8个C2 PCIe IPU服务器,对比配备IPU-Fabric的8个IPU-M2000,在三个典型的应用场景中——BERT-Large训练,Mk2有9.3倍的性能提升;BERT三层推理,实现了8.5倍提升;EfficientNet-B3这类计算机视觉模型,也有7.4倍的提升。
再拿8个M2000跟基于英伟达DGX-A100的整机(8个A100)对比。后者FP32算力是156TFlops,而8个M2000做到了2PFlops,约12倍的FP32性能提升。AI计算方面,GPU平台上是2.5PFlops,M2000平台上是8PFlops,大约三倍提升。存储部分,相对于后者的320GB,前者有3.6TB,将近10倍。再从系统架构和成本来看,花199K美金能买到最新的GPU算力和存储,而Graphcore的平台大概花259K美金,就能拿到12倍的运算能力和10倍的存储空间。
软件与平台生态
AI落地这件事,软件生态的重要性有时候甚至超过硬件。Graphcore在提供高性能IPU芯片的同时,也在加速软件和平台生态的建设。
Graphcore中国区技术应用总负责人罗旭介绍了Poplar软件的最新版本特性。Poplar体系包括PopART和PopLibs:PopLibs相当于SDK,PopART相当于runtime。通过PopART和PopLibs,连接到Poplar的compute graph,再经过graph compiler——这是整个软件和硬件结合最紧密的一环——转成计算图,最终加载到IPU-Machine上。
Poplar支持的主流算法框架包括PyTorch、TensorFlow、ONNX、mxnet,还有百度前段时间发布的PaddlePaddle。同一套软件同时支持推理和训练。

最新发布的SDK 1.2有几个关键特性:与先进机器学习框架的集成更好了;开放了低级别的API,方便上层算法针对性能做特定调优;增加了对PyTorch和Keras的支持。此外还有卷积库和稀疏库。PopART方面,已经能做到多机的数据并行训练。
罗旭还提到,Exchange Memory也开放了API和管理功能,应用开发者可以基于它做极大幅度的模型性能调优。针对数据中心主流的ubuntu、RedHat、CentOS,Poplar SDK、drivers、工具链现在也完全支持。
7月6号,PopLibs已经在GitHub上开源。
Graphcore在中国的首款IPU开发者云部署在金山云上,里面用了三种IPU产品:IPU-POD64、浪潮的IPU服务器NF5568M5,以及戴尔的IPU服务器DSS8440。目前面向商业用户提供评测服务,面向高校研究机构和个人开发者则提供免费试用。商业用户通常是三周或按需适度延长的试用期,可以借助IPU极大优化现有模型,比竞争对手更早实现产品化和市场化。而对大学、研究机构和个人研究者,则提供6个月的免费访问,直到完成研究项目并发表结果。
IPU与GPU不是竞争关系
卢涛认为,IPU是面向未来的另一大计算平台,和CPU、GPU不是单纯的竞争关系——有交叉,也有不同。目前AI主流计算平台还是CPU和GPU,甚至很多算法也是基于GPU发展起来的。Graphcore的愿景是画第三个圆——CPU和GPU并没有从根本意义上解决AI的问题。AI本质上是面向计算图的计算任务,和CPU的标量计算以及GPU的矢量计算都不一样。
三个圆之间会有重叠相交的部分,也就必然会在某些领域形成竞争。比如目前在NLP和CV这两个领域,会有一段胶着期。但未来,会有更多只有IPU才能独当一面的应用场景,等着我们去挖掘。
