英伟达在云端 AI 训练芯片市场超九成的市占率让新入局的竞争者们都将枪口指向这家当红 AI 公司。声称 AI 性能比英伟达 GPU 的新产品不少,但真正突破英伟达护城河的现在仍未看到。

相比在硬件性能上超越英伟达,软件生态的赶超难度显然更大。不过,微软亚洲研究院的 NNFusion 项目以及阿里云的 HALO 开源项目,正努力降低从 GPU 迁移到新的硬件平台的难度和成本,再加上在多个重要 AI 模型上性能超英伟达最新 A100 GPU 的 IPU,云端 AI 芯片市场的格局未来几年可能会发生变化。

9c53052acd974ce69447ad182c79e41e.jpg

微软、阿里云开源项目降低迁移出 GPU 的难度

目前 AI 的落地,仍以互联网和云计算为主。因此,科技巨头们很快发现迁移到新平台不能只看峰值算力。Graphcore 高级副总裁兼中国区总经理卢涛表示:“客户考虑为一个新的软硬件平台买单时,首先考虑的是能够获得多少收益。其次考虑的是需要多少成本,这涉及软硬件的迁移成本。”

对于科技巨头们而言,GPU 确实是一个好选择,但考虑到成本、功耗以及自身业务的特点,仍然有自研或者迁移到其它高性能芯片的动力。此时,软件成为能否快速、低成本迁移的关键。

将已有的 AI 模型迁移到新的 AI 加速器时,现在普遍的做法是在 TensorFlow 写一些后端集成新硬件,这给社区和 AI 芯片公司都带来了负担,也增加了迁移的难度和成本。

991358b8d9c548c488de0c22848dcdf8.jpg

微软亚洲研究院的 NNFusion 以及阿里云的 HALO 开源项目,都是希望从 AI 编译的角度,避免重复性的工作,让用户能够在 GPU 和其它 AI 加速器之间尽量平滑迁移,特别是 GPU 和 IPU 之间的迁移。

6feb459aadad40b59f98134810e6f6fa.jpg

764adddb18ac439196c6245802e6bf4d.jpg

也就是说,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 的广泛应用有着积极意义。

ede12a1f8da44911b41e55544556d73d.jpg

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 等传统机器学习模型。

e9c645bccfa34e9db40d34856016283a.jpg

89ea66e464eb4cc1abdfc89e92a0806d.jpg

其中有一些比较大的提升,比如与 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,什么时候会迎来破局时刻?