AI 没有走向低潮,而是在催生大量的应用。但大量的 AI 的应用非常场景化,既需要成熟的 CPU 和 GPU,也需要全新的 AI 处理器。IPU(Intelligence Processing Unit)就是一种为 AI 计算而生的革命性架构,如今,IPU 已经在金融、医疗、电信、机器人、云和互联网等领域取得成效。
随着英国初创公司的 Graphcore 的 IPU 在 AI 应用市场的规模化落地,第三类 AI 处理器受到的关注度越来越高的同时,但 IPU 能否更好完成 CPU 和 GPU 不擅长的 AI 任务成为当之无愧的革命性架构?
IPU 如何跨过芯片与 AI 应用之间的鸿沟?
去年底,雷锋网的《为 AI 颠覆 GPU!计算机史上迎来第三个革命性架构 IPU》一文已经解读了 Graphcore IPU 架构的独特之处。这里再稍作介绍,Graphcore 已经量产的 IPU 型号为 GC2,处理器内部有 1216 个 IPU Tiles,每个 Tile 里面有独立的 IPU 核作为计算以及 In Processor Memory 即处理器之内的内存。整个 GC2 处理器总共有 7296 个线程,能够支持 7296 个程序在并行的运行。
基于台积电 16nm 工艺集成 236 亿个晶体管的 GC2 在 120 瓦的功耗下有 125TFlops 的混合精度、300M 的 SRAM 能够把完整的模型放在片内,另外内存的带宽有 15TB/s、片上的交换是 8TB/s,片间的 IPU-Links 是 2.5Tbps。
也就是说,IPU 通过分布式的片上存储架构突破了 AI 芯片的存储墙瓶颈。但正如 Graphcore 销售副总裁兼中国区总经理卢涛在近日的一场媒体分享会上所言:“从一个芯片到落地中间有很多 gap。包括是否有比较好的工具链、丰富的软件以及丰富的软件库支持,还有对主流算法、框架以及操作系统的支持。”
这就意味着,只有通过易用的软件将芯片的优势发挥出来 AI 芯片才能更好地落地。对于 IPU 而言,由于架构的特色,解决并行硬件的高效编程是一个非常大的课题。为此,Graphcore 在 GC2 中采用了谷歌、Facebook、百度这些构建大规模数据中心集群会使用的 BSP(Bulk Synchronous Parallel)技术 ,通过硬件支持 BSP 协议,并通过 BSP 协议把整个计算逻辑分成计算、同步、交换。
卢涛说:“对软件工程师或者开发者来说,采用了 BSP 后就非常易于编程,因为不用处理 locks 。对用户来说,也不用管这里面是 1216 个核心(Tile)还是 7000 多个线程、任务具体在哪个核上执行,这是一个非常用户友好的创新。”
在此基础上,Graphcore 推出了在机器学习框架软件和硬件之间基于计算图的整套工具链和库的 Poplar 是软件栈。据悉,Poplar 目前已经提供 750 个高性能计算元素的 50 多种优化功能,支持标准机器学习框架,如 TensorFlow1、2,ONNX 和 PyTorch,很快也会支持 PaddlePaddle。
另外,可以支持容器化部署,能够快速启动并且运行。标准生态方面支持 Docker、Kubernetes,还有像微软的 Hyper-v 等虚拟化技术和安全技术。操作系统支持广泛应用的三个 Linux 发行版:ubuntu、RedHat Enterprise Linux、CentOS。
今年 5 月,Graphcore 又推出了名为 PopVision Graph Analyser 的分析工具,开发者、研究者在使用 IPU 进行编程的时候,可以通过 PopVision 这个可视化的图形展示工具来分析软件运行的情况、效率调试调优等。同月也上线了 Poplar 开发者文档和社区。
目前,基于 IPU 的一些应用已经覆盖了机器学习的各个应用领域,包括自然语言处理、图像/视频处理、时序分析、推荐/排名及概率模型。Graphcore 在 Github 不仅提供模型移植的文章,还有丰富的应用案例和模型。
还有一个关键的问题,开发者把模型迁移到 IPU 需要进行代码级修改吗?卢涛对雷锋网表示:“AI 的开发者 90% 都使用开源框架,开发语言是 Python,对于这类开发者,代码的迁移成本非常低。就算是占开发者群体9% 的,使用基于 Nvidia cuDNN 的性能级开发者,我们也会尽量提供和 cuDNN 类似的用户体验,这个工作量目前看来完全在接受的范围。”
IPU 吞吐量最高比 GPU 提升 260 倍
解决了芯片到应用的软件问题,那 IPU 更适合在哪些场景应用?“我们未来推进的策略还是训练和推理两个事情并行来做。有可能是一些单独的训练任务,也有可能是一些单独的推理任务,但我们会更加聚焦在一些对精度要求更高、对时延要求更低、对吞吐量要求更高的一些场景。”卢涛进一步表示。
“当前广泛应用、主流的 CV 类的模型是以 Int8 为主,但像现在的 NLP 模型,以及一些搜索引擎里用的模型或者广告算法模型其实都是 FP16,甚至 FP32 为主流的数据格式,因为这样一些模型对于精度的要求会更高。因此云端推理除了 Int8,FP16 和 FP32 的市场也很大。”
Graphcore 中国销售总监朱江指出,除了稠密的数据之外,现在代表整个 AI 发展方向的大规模稀疏化的数据,在 IPU 上处理就会有非常明显的优势。与大规模的稀疏化数据对应的是分组卷积这样一种新型的卷积算法,与 ResNet 这种目前比较传统的方式相比,可以有更好的精度方表现和性能提升。
Graphcore 给出了一个分组卷积内核的 Micro-Benchmark,将组维度(Group Dimension)分成从 1 到 512 来比较。512 就是应用得较多的“Dense 卷积网络”,典型的应用如 ResNet。在 212 的维度,IPU GC2 性能比 V100 要好近一倍。随着稠密程度降低、稀疏化程度增加,在组维度为 1 或为 32 时,针对 EfficientNet 或 MobileNet,IPU 对比 GPU 展现出巨大的优势,做到成倍的性能提升,同时延时大大降低。
之所以在低数组维度优势明显,是因为分组卷积数据不够稠密,在 GPU 上可能效果并不好,而 IPU 的架构设计在分组卷积中能够发挥优势,并且可以提供 GPU 很难甚至无法提供的低延迟和高吞吐量。
整体而言,与英伟达 V100 相比,Graphcore 的 IPU 在自然语言处理方面的速度能够提升 20%-50%,图像分类能有 6 倍的吞吐量提升实现更低的时延。这些优势在 IPU 的实际落地案例中也同明显的性能优势。
在金融领域的风险管理、算法交易等应用中,会使用 Markov Chain 和 MCMC 等算法,借助 IPU,采样速率能够比 GPU 提高 26 倍。在金融领域应用广泛的强化学习,IPU 也能把强化学习时间缩短到1/13。还有,采用 MLP(多层感知器)加上嵌入一些数据的方式来做销售的预测,IPU 相比 GPU 能有 5.9 倍以上的吞吐量提升。
在医疗和生命科学领域,包括新药发现、医学图像、医学研究、精准医疗等,IPU 也已经体现出优势。微软使用 IPU 训练 COVID-19 影像分析的算法模型 CXR,能够在 30 分钟之内完成在 NVIDIA GPU 上需要 5 个小时的训练工作量。
另外,在电信领域,机器智能可以帮助分析无线数据的一些变化,比如采用 LSTM 模型预测未来性能促进网络规划。基于时间序列分析,采用 IPU 能够比 GPU 有 260 倍的吞吐量提升。
在 5G 网络切片和资源管理中需要用到的强化学习,用 IPU 训练吞吐量也能够提升最多 13 倍。
在创新的客户体验的自然语言处理(NLP)方面,代表性的模型就是 BERT。朱江介绍:“我们目前在 BERT 上训练的时间能够比 GPU 缩短 25% 以上。”
还有一个有意思的应用是 IPU 在机器人领域的应用,是 Graphcore 和伦敦帝国理工学院的合作,主要是用到一些空间的 AI 以及及时定位和地图构建技术,帮助机器人做比较复杂的动作和更高级的功能。
对 Graphcore 更重要的是在 IPU 在云和数据中心中的应用,这是他们早期推广以及现在主要推广的领域,包括微软在 Azure 公有云上开放 IPU 的服务,以及欧洲搜索引擎公司 Qwant 使用 IPU 做搜图识别性能达到 3.5 倍以上的提升。
如何抢占中国 AI 市场先机?
“在 IPU 的落地上,目前我们整个策略上还是与云服务商和服务器提供商合作,所有地区基本上是一样的做法。”卢涛坦言,IPU 在美国的落地速度比中国更快,包括 Azure 公有云上开放 IPU 的服务,以及与戴尔易安信合作推出了 IPU 服务器等。
他解释,“这是因为美国的用户可能是较为活跃的研究者社区,而中国很注重产品化落地。我们中国本地的一些合作伙伴、开发者可能会更加务实。可能前期导入会慢一点,但是后面真正开始加速了, 整个开发过程速度是会非常快。”
卢涛也透露,Graphcore 在和金山云在合作,即将上线一个面向中国开发者和创新者的免费试用的开发者云。
在本地化产品服务方面,“长期来讲,我们很开放地希望针对中国市场的需求做产品的定制化演进。从服务的角度,我们有两支技术团队,工程技术团队承担两个方面的工作,一是根据中国本地的 AI 的应用的特点和应用的需求,把一些 AI 的算法模型用 IPU 去落地;二是根据中国本地用户对于 AI 的稳定性学习框架平台软件方面的需求,做功能性的一些开发加强的工作。现场应用团队则是帮助客户做一些更现场的技术支持的工作。”
当然,Graphcore 支持阿里巴巴为底层的架构抽象出来的统一接口 API ODLA(Open Deep Learning API)硬件标准,以及支持国内重要的深度学习框架百度飞桨也都有助于 Graphcore 的 IPU 在国内的落地。
从 AI 发展的未来趋势看,IPU 也能发挥优势。卢涛说:“我们看到一个大的趋势,就是训练和推理有混步的需求。比如线上的推荐算法,以及预测汽车类应用。能够同时满足训练和推理需求的 IPU 就能够发挥优势。”
另外,“分组卷积对算法设计者来说,最简单的一个表现就是设计出参数规模更小、精度更高的一个算法模型。我们认为这是未来一个大的趋势。”
雷锋网小结
作为一个全新的架构,IPU 获得了业界多位专家的高度评价。不过从创新的架构到芯片再到成为革命性的产品,Graphcore 从芯片到落地之间的距离,需要易用的软件和丰富的工具来支持,特别是对软件生态依赖程度比较到的云端芯片市场。从目前的情况看,Graphcore 在工具链、部署支持方面都已经有对应的产品,并且在金融、医疗、数据中心等领域都有落地案例。并且,Graphcore 下一代基于更先进 7nm 工艺的 IPU 也即将推出。
接下来的问题就是标杆客户之后市场的接受度如何?以及 Graphcore 的市场策略是否和他们的产品一样优势明显?
不可忽视的是,全球范围内除了 Graphcore 还有其他公司也使用了 IPU 的理念设计出了 AI 芯片并且开始推广。我们正在见证 IPU 时代的到来。
注,文中图片均来自 Graphcore