每美元性能是英伟达的1.6倍!Graphcore首次提交MLPerf获优异成果
2021-07-06
作者:韦肖葳
来源:电子技术应用
2020年12月,Graphcore宣布加入MLCommons(独立Benchmark组织MLPerf的下属机构),成为其创始成员,并表示将于2021年加入MLPerf,在春季提交第一份训练。北京时间2021年7月1日凌晨1点,一份出色的提交结果如期而至。
在今年提交的MLPerf训练1.0版本的任务里面,Graphcore提交了两个在相应领域里面颇具代表意义,被广为使用的模型:计算机视觉模型ResNet-50,以及自然语言处理模型BERT。所提交的硬件形态也是两个,IPU-POD16和IPU-POD64。
如下图所示,在IPU-POD64上,BERT的训练时间只有9.39分钟,ResNet-50的训练时间为14.48分钟,已经达到了超级计算机级别的AI性能。
据悉,封闭分区(Closed Division)严格要求提交者使用完全相同的模型实施和优化器方法,包括定义超参数状态和训练时期。开放分区(Open Division)保证了和封闭分区完全相同的模型准确性和质量,但支持更灵活的模型实施以促进创新。因此,开放分区支持更快的模型实现,更加适应不同的处理器功能和优化器方法。其实,对于像Graphcore IPU这样的创新架构,开放分区更能体现出其性能,但公司还是选择在开放和封闭分区都进行了提交。
“在IPU-POD16上,BERT在MLPerf v1.0 Training开放分区中的训练时间(Time To Train)基本上是小于半个小时的。而在IPU-POD64上,其Scaling Factor基本上可以达到3.5倍,在开放分区提交中的训练时间基本上是小于10分钟的,这对于很多科研工作者来说是非常令人兴奋的一个消息,这意味着在训练过程中他们可以更快地得到研究结果。”Graphcore中国工程总负责人、AI算法科学家金琛表示。
Graphcore中国工程总负责人、AI算法科学家 金琛
性价比超高!Graphcore“每美元性能”领先英伟达
MLPerf被称为比较基准,实际上进行直接比较可能很复杂。而从“每美元性能”角度来看,往往最能够说明问题。
MLPerf对比了市面上的Graphcore系统与NVIDIA的最新产品,结果证实Graphcore在“每美元性能”(Performance-Per-Dollar)的指标上稳居领先地位。
据悉,NVIDIA此次提交的很多数据是基于其DGX A100 640G的版本。以ResNet-50为例,其使用的DGX A100 640G的版本,8张卡,6U的空间。Graphcore使用的是IPU-POD16,5U的空间。如上图所示,DGX A100的厂商指导零售价接近30万美金/台。Graphcore的全球合作伙伴给出的IPU-POD16目录价是将近15万美金/台。
经对比可见,这两个系统中,IPU-POD16上ResNet-50的MLPerf训练时间是37.12分钟,DGX A100 640G版本上是28.77分钟。“最终用户非常关注‘每花费一美金所能获得的训练收益’。如果我们将训练收益和目录价折算成性价比的话,IPU-POD16相对DGX A100 640G版本的性价比收益有1.6倍。”Graphcore高级副总裁兼中国区经理卢涛表示。
Graphcore高级副总裁兼中国区经理 卢涛
两个系统同样在BERT的训练任务上也进行了比较。IPU-POD16上BERT的MLPerf训练时间是34.49分钟,NVIDIA是21.69分钟,折算成性价比的话,IPU-POD16的性价比收益可达DGX A100 640G版本的1.3倍。
由此可见,Graphcore系统的经济性可以更好地帮助客户实现其AI计算目标。同时,由于IPU专为AI构建的架构特点,Graphcore系统还可以解锁下一代模型和技术。
持续追求软件改进,六个月内性能提升高达2.1倍
上图显示的是SDK对模型性能的影响(以在IPU-POD16上为例)。近期发布的Poplar SDK中所取得的基准测试(Benchmark)方面的进展,体现了Graphcore对持续改进软件的关注。图中列出了三个版本:1.4版本、2.0版本、2.1版本。1.4版本于2020年发布,2.0版本于2021年Q1发布,2.1版本在6月底刚刚发布。可以发现,随着版本的演进,Graphcore实现了2.1倍的ResNet-50性能提升,1.6倍的BERT-Large性能提升和1.5倍的计算机视觉模型EfficientNet性能提升。“对于BERT-Large第一阶段预训练(SL128)吞吐量的来说,其SDK 1.4的吞吐量大概是2700,SDK 2.0大概是3700,SDK 2.1是4000多。对于Graphcore这样一个500人左右的公司来说,能在半年内取得这样的提升,可以算是取得了一个较为显著的成果。”金琛表示,“计算机视觉(CV)图像分类(Image Classification)方面,EfficientNet在SDK 2.1上的性能和SDK 1.4相比提升了1.5倍。而在这三个模型中,提升最显著的是ResNet-50,其在SDK 2.1上的性能和SDK 1.4相比提升了2倍左右。这是发挥了我们SDK中的两个比较显著的功能(Feature)的作用:一是post I/O的overlap,即在CPU和IPU间进行任务处理时,在图像传输的过程中会与我们的计算进行重叠,这样可以更好地利用我们IPU的计算资源。另外,我们在算子库和Tile Memory Layout方面也取得了一些进步,使得我们在算子方面有所提升。”
MLPerf的提交对Graphcore意味着什么?
“Graphcore什么时候能够提交MLPerf的结果?”在过去的一两年里,这个问题常被外界问及。
由于资源有限,还要聚焦于开发公司自身的核心软件特性,以及与头部客户及合作伙伴联合探索应用场景落地,Graphcore在当时没有足够的人力和时间资源进行MLPerf提交的相关工作。
“今年,Graphcore整体软硬件,尤其是软件和生态,更加成熟完善,公司整体实力和之前相比更加雄厚。”卢涛说道,“提交MLPerf的工作量不小。我们有一个团队主要做MLPerf的相关工作,在其他团队的支持下,这个团队针对这一次的提交做了半年多的工作。”
的确,对于如今500人左右规模的Graphcore来说,这是一项很大的投资。“提交MLPerf从某种意义上证明,和以前相比,Graphcore的实力有了进一步提高,我们有资源来做提交MLPerf的相关工作。”卢涛补充道,“在未来,我们也有做更大规模集群性能提交的计划。”
Graphcore追求的三个目标:更优的性能、更大的规模和添加更多模型
MLCommons的使命是“加速机器学习创新并扩大其对社会的积极影响”,这也是Graphcore全力以赴、为之奋斗的志向。全球的处理器各不相同,衡量其性能的维度更是多种多样。在对比不同处理器的时候,所对比的维度也是不尽相同。MLCommons所提出的各种基准测试从某种意义上说将各类处理器都拉到了同一个维度里进行对话,这对于业界来说有较大的参考意义。“像ResNet、BERT等应用都是在过往基于GPU架构选择出来并深度优化的应用。这可能对于Graphcore来说不是特别‘公平’。但是对于一家企业机构来说,要积极参与产业标准的探讨,逐渐成为产业中的有力声音,才能最终影响产业标准的走向。所以对于Graphcore来说,要先拥抱这一标准,逐渐加深对这一标准规则的了解以及其对整个产业的意义。”卢涛如是说,“此次是Graphcore第一次提交MLPerf训练任务。这是一项需要持续投入的工作,我们在未来也会积极参与MLPerf的提交,提供一些不同的任务,让MLPerf的工作负载(Workload)更具代表性。”