相比在硬件性能上超越英伟达,软件生态的赶超难度显然更大。
作者 | 包永刚
英伟达在云端AI训练芯片市场超九成的市占率让新入局的竞争者们都将枪口指向这家当红AI公司。声称AI性能比英伟达GPU的新产品不少,但真正突破英伟达护城河的现在仍未看到。
相比在硬件性能上超越英伟达,软件生态的赶超难度显然更大。不过,微软亚洲研究院的NNFusion项目以及阿里云的HALO开源项目,正努力降低从GPU迁移到新的硬件平台的难度和成本,再加上在多个重要AI模型上性能超英伟达最新A100 GPU的IPU,云端AI芯片市场的格局未来几年可能会发生变化。
微软、阿里云开源项目
降低迁移出GPU的难度
目前AI的落地,仍以互联网和云计算为主。因此,科技巨头们很快发现迁移到新平台不能只看峰值算力。Graphcore高级副总裁兼中国区总经理卢涛表示:“客户考虑为一个新的软硬件平台买单时,首先考虑的是能够获得多少收益。其次考虑的是需要多少成本,这涉及软硬件的迁移成本。”
对于科技巨头们而言,GPU确实是一个好选择,但考虑到成本、功耗以及自身业务的特点,仍然有自研或者迁移到其它高性能芯片的动力。此时,软件成为能否快速、低成本迁移的关键。
将已有的AI模型迁移到新的AI加速器时,现在普遍的做法是在TensorFlow写一些后端集成新硬件,这给社区和AI芯片公司都带来了负担,也增加了迁移的难度和成本。
微软亚洲研究院的NNFusion以及阿里云的HALO开源项目,都是希望从AI编译的角度,避免重复性的工作,让用户能够在GPU和其它AI加速器之间尽量平滑迁移,特别是GPU和IPU之间的迁移。
也就是说,NNFusion和HALO向上跨AI框架,既可以集成TensorFlow生成的模型,也可以集成PyTorch或其他框架生成的模型。向下用户只要通过NNFusion或者HALO的接口就可以在不同的AI芯片上做训练或者推理。
这种调度框架在降低迁移难度和成本的同时,还能提升性能。根据2020 OSDI(计算机学界最顶级学术会议之一)发布的研究结果,研究者在英伟达和AMD的GPU,还有Graphcore IPU上做了各种测试后得出结果,在IPU上LSTM的训练模型得到了3倍的提升。
当然,这样的收益还是需要开源社区与硬件提供方的紧密合作,比如Graphcore与微软亚洲研究院以及阿里云的合作。
增加迁入IPU的便捷性
“我们与阿里云HALO和微软NNFusion紧密合作,这两个项目支持的最主要的平台是GPU和IPU。”卢涛表示,“目前在阿里云HALO的GitHub里已经有IPU的完整支持代码odla_PopArt,下载开源代码就已经可以在IPU上使用。”
能够便捷地使用IPU也离不开主流机器学习框架的支持。Graphcore本月最新发布了面向IPU的PyTorch产品级版本与Poplar SDK 1.4。PyTorch是AI研究者社区炙手可热的机器学习框架,与TensorFlow两分天下。
PyTorch支持IPU引起了机器学习大神Yann LeCun的关注。之所以引发广泛关注,是因为这个支持对于IPU的广泛应用有着积极意义。
Graphcore中国工程总负责人,AI算法科学家金琛介绍,“在PyTorch的代码里,我们引入了一个叫PopTorch的轻量级接口。通过这个接口,用户可以基于他们当前的PyTorch的模型做轻量级封装,之后就可以无缝的在IPU和CPU上运行这个模型。”
这也能更好地与HALO和NNFusion开源社区合作。金琛告诉雷锋网,“不同的框架会有不同中间表示格式,也就是IR(Intermediate Representation)。我们希望将不同的IR格式转换到我们通用的PopART计算图上,这也是兼容性中最关键的一点。”
据悉,IPU对TensorFlow的支持,是像TPU一样,通过TensorFlow XLA backend接入到TensorFlow的框架,相当于把一个TensorFlow计算图转换成为一个XLA的计算图,然后再通过接入XLA的计算图下沉到PopART的计算图,通过编译,就可以生成可以在IPU上执行的二进制文件。
金琛认为,“各个层级图的转换是一个非常关键的因素,也需要一些定制化工作,因为里面的一些通用算子也是基于IPU进行开发的,这是我们比较特殊的工作。”
除了需要增加对不同AI框架以及AI框架里自定义算子的支持,增强对模型的覆盖度的支持,也能够降低迁移成本。
金琛介绍,对于训练模型的迁移,如果是迁移一个不太复杂的模型,一般一个开发者一周就可以完成,比较复杂的模型则需要两周时间。如果是迁移推理模型,一般只需要1-2天就可以完成。
IPU正面挑战GPU,
云端芯片市场或改变
AI时代,软硬件一体化的重要性更加突显。卢涛说:“AI处理器公司大致可以分为三类,一类公司是正在讲PPT的公司,一类公司是有了芯片的公司,一类公司是真正接近或者是有了软件的公司。”
已经在软件方面有进展的Graphcore,硬件的表现能否也让用户有足够的切换动力?本月,Graphcore发布了基于MK2 IPU的IPU-M2000的多个模型的训练Benchmark,包括典型的CV模型ResNet、基于分组卷积的ResNeXt、EfficientNet、语音模型、BERT-Large等自然语言处理模型,MCMC等传统机器学习模型。
其中有一些比较大的提升,比如与A100 GPU相比,IPU-M2000的ResNet50的吞吐量大概能实现2.6倍的性能提升,ResNeXt101的吞吐量提升了3.6倍,EfficientNet的吞吐量达到了18倍,Deep Voice 3达到了13倍。
值得一提的还有IPU-POD64训练BERT-Large的时间比1台DGX-A100快5.3倍,比3台DGX-A100快1.8倍。1个IPU-POD64和3个DGX-A100的功率和价格基本相同。
强调IPU训练BERT-Large的成绩不仅因为这是英伟达GPU和谷歌TPU之后第三个发布能够训练这一模型的AI芯片,还因为BERT-Large模型对现在芯片落地的意义。
卢涛说:“在今天,BERT-Large模型不管是对于工业界,还是对研究界都是一个比较好的基准,它在未来至少一年内是一个上线的模型水准。”
不过,这一成绩目前并非MLPerf发布的结果,正式结果需要等待Graphcore在明年上半年正式参与MLPerf性能测试。近期,Graphcore宣布加入MLPerf管理机构MLCommons。
“我觉得我们加入MLCommons和提交MLPerf表明,IPU即将在GPU的核心领域里面和GPU正面PK,表明了IPU除了能做GPU不能做的事情,在GPU最擅长的领域,IPU也能以更好TCO实现相等,甚至更优的表现。”卢涛表示。
微软亚洲研究院、阿里云、Graphcore都在共同推动GPU转向IPU,什么时候会迎来破局时刻?