社会焦点

业界 | 深度学习芯片公司Graphcore初探:颠覆GPU、FPGA和CPU的新一代处理器IPU

字号+ 作者: 来源: 2017-03-26

业界 | 深度学习芯片公司Graphcore初探:颠覆GPU、FPGA和CPU的新一代处理器IPU

参与:朱朝阳、侯韵楚、李亚洲、黄小天

  

业界 | 深度学习芯片公司Graphcore初探:颠覆GPU、FPGA和CPU的新一代处理器IPU

作为思维锻炼,让我们将神经网络视为大量的图形,把 CPU 视为一个更高级命令处理器的被动从属设备,这个处理器可在不断扩展的连接网络上跨多点进行训练、推断,并在同一架构上自我分化成多个模型。

当然,在这个概念中可能会有大量的技术性否定,且只有一部分与算法复杂性有关。首先,至少对于神经网络问题来说,即使在诸如 GPU 和 FPGA 的专用设备上,内存带宽也到达了极限。第二,即使保持存储消耗的供给不是瓶颈,软件开发任务也会随问题而扩展。架构定制是大规模提高神经网络速度的唯一办法。这并不排除通用加速器,因为确实需要它们去完成任务。

退一步讲,真正的问题是如果新一代处理器要颠覆 GPU 或 FPGA,又或是可靠的 CPU,它应该具备哪些性能?有些情况下,这种处理器看起来像是一个(经常被堆栈的)内存设备,可以掌控整个模型,并通过最小化(或至少减少)片外存储器访问来减少延迟;其他情况下,它看起来又更像是一个专门被架构的用于快速输入/输出的计算图形处理器 :带有一个自定义互连,大量但简单的内核,并可在鲁棒的编译器之后大规模地解决所有凌乱的图形处理问题。

一些人会认为 Pascal GPU 已能做到这一点,并会继续发挥更大作用,因为它们擅长处理神经网络算法中稀疏性问题。但是调优的架构却牺牲了性能和效率。关键在于,如果存在一种训练与推断同样高效的图形架构,它可能会颠覆整个行业。如果深度学习的早期阶段有令人垂涎的奖励,尤其是当用户池足够浅从而可一眼看穿时,一个两全其美的架构就有可能出现在行业之中。

像许多我们交流过的做机器学习芯片的供应商和研究人员一样,Graphcore 认为其取得了突破性进展,提升了可延展性,恰当地平衡了性能/电源。Graphcore 还认为通过一个图形处理器做可以解决所有问题,并最终可让智能处理单元(或 IPU,如其所名)在同一架构上跨多个形状因子(服务器和设备)地承担训练与推断的双重任务。你猜怎么着?他们确实为上述所有情况做了最好的打算。也就是说他们声称的可以在新一代的高带宽/堆栈内存上获得 100 倍的内存带宽加速,这确实是真的。关于这一点,谈论硬件时会提及更多,2017 年底是 TSMC(如 Pascal GPU)的 16 纳米 FinFET 早期用户预定的交付日期。

Graphcore 的 CEO Nigel Toon 向 *The Next Platform *提供了关于其所做事情的极其详细的信息,他在特定工作负载的专用架构设计上很有经验,作为一名前 IPO 场应用工程师在 FPGA 芯片制造商 Altera 工作超过 10 年,并在多家聚焦于高调试硬件设备的单一性业务初创公司(被 Nvidia 和 Broadcom 收购)工作过。Graphcore 工程团队的大部分人都有类似的背景。而且,他还说,Graphcore 知道如何瞄准一个特定应用程序集并打造其他公司肯定也在做的适配性东西,只是没有做到像 Graphcore 这样强调互连和底层软件堆栈。

「设计出的这一架构可同时适合训练和推断。在某些情况下,你可以设计一个可用于训练的硬件,然后将其分段或虚拟化以支持许多不同的用户进行推断甚至是不同机器学习模型的部署。存在如下情况,例如,当一切被嵌入之后,并且你需要一个稍微不同的实现,但它却是同一个硬件架构。这是我们的主题:唯一架构 IPU,可用于训练、推断,并可完成被用于服务器、云或网络边缘的机器的不同实现。

Graphcore IPU 的核心是一个图形处理库。「如果查看底层机器学习工作,需要捕获数据精华,即从数据中学到的一组特征和这些特征之间关系。这可表示为一个神经网络模型,或者更准确更通俗地说,是一个计算图形,它的一组边表示关联权重的数据,边上的顶点表示计算函数,」Toon 解释道。「你正在尝试在图形上理解这些特征和它们之间的关系。该图形的构建很复杂,且是多层的,因为你得到了这些关系的不同的层面。」问题也不会就此结束。神经网络的总体规划是创建越来越大的网络,彼此循环,学习和改进。这些必须是循环的——不只是以 RNN 方式,而且要在许多层和网络中循环。总之,最终结果是深入,宽泛的强化学习,或更简单地,建立在使用不断改善的网络。正如人们可以想象的那样,这种任务的计算负荷是巨大的,并且比简单地投入 CPU 来喂养它更加微妙,即使它最容易线性地(在理论上)扩展。

说到理论,建立一种自我馈送、自我学习的网络将带来重大挑战:抵达最专业设备的当前极限。

Graphcore IPU 的技术直到今年下半年才予以公开,尽管未提及任何与现存架构有关的细节,但我们仍旧发现了一些有趣的新东西。首先,整个神经网络模型适合于处理器(而不是存储器)。这上千块简单内核并不依赖通往外部储存器的狭长而延迟的路径,它们可以进行内部存储而不产生跳跃。Toon 的说法最有意思:「即使尽力添加 HBM 和 3D 堆栈,你指的仍旧是在 700 GB 每秒的数量级水平访问外部储存器,而我们通过将模型置于处理器内,在外部储存器中约有 100X 的带宽到内存」。当然,这里指的是设备的总内存带宽。

Toon 说:「我们正在尝试将图形映射到图形处理器,即 IPU 中。其关键是要让软件允许采取这些复杂结构,并映射到一个将维持模型所需的全部内存包含在内,且高度并行的处理器中。将神经网络扩展成图形后,软件便会将它映射到一个相对简单的处理器中,这个处理器有些属性很有趣,如一个完全由编译器控制的十分丰富的互连系统。互连和内核本身便具有许多创新——我们使用的不是标准内核,在一个芯片上有一千多个。」他指出,这是真正的千块内核,能够与 Nvidia 分割 56 个处理器块而成的大量内核相比。他说:「这是 Nvidia 面临的困难,也是我们在努力解决的问题——在 GPU 情境中,若要在 56 个块间使用 GPU 共享数据,我能做到的唯一方法是写入外部存储器后再次读回。」他说,为数千内核构建架构需要一个不同的结构——它不依赖于推送数据至外部存储器,在内部共享并置于处理器中,且在所有内核之间负载平衡。

因此我们可以假设这种架构和一些非标准内核可能存在自定义互连,所以下一个问题便与精度有关——一个 Nvidia 所擅长的,使用 Pascal 处理工作负载的领域。提取关于这些芯片具体作用的信息很难,但若以提示的方式,Toon 说:「实际情况是,你需要对某一点提供 32、16 及量化整数的支持;但不需要双精度,那是在浪费硅。」

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 案例 | 抑郁症、精神分裂,初中生家境优渥,父母为何不让吃药

    案例 | 抑郁症、精神分裂,初中生家境优渥,父母为何不让吃药

  • 实录 |12名女大学生被侵犯,色魔竟然是个老乞丐

    实录 |12名女大学生被侵犯,色魔竟然是个老乞丐

  • 微信群的多人语音和视频聊天功能,你要试试 | 有轻功 #081

    微信群的多人语音和视频聊天功能,你要试试 | 有轻功 #081

  • 为了不让你坐过站,香港人居然做了这款 App | AppWall 精选 #060

    为了不让你坐过站,香港人居然做了这款 App | AppWall 精选 #060