用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园

  近日,Intel 宣布了在 AI 领域的一个新动作:新近收购的 Habana 的系列产品将取代原定的服务器端 AI 加速芯片 Nervana Spring Crest NNP-T,而 Spring Crest NNP-T 系列将停止开发。本文将对 Intel 的这个决定做深入解读。

  Intel 收购 Nervana:Intel 在 AI 领域的第一个大动作

  我们首先分析一下 Nervana Spring Crest 系列产品的由来。为此,我们需要先介绍一下 Nervana Systems 这家三年前被 Intel 收购的公司。

  Nervana Systems 成立于 2014 年,是一家在 AI 尚未真正成为风口时就宣布做 AI 底层架构的初创公司,其投资人包括 DCVC、Lux 等顶级硅谷风投。2015 年,Nervana 在深度学习领域发布了其主要产品,即深度学习底层框架 Neon。Neon 是一个为深度学习仔细优化的底层框架,在算子层级拥有很高的效率。Neon 最初是运行在 Nvidia GPU 上,然而其性能比起 Nvidia 的亲儿子 CuDNN 都要强不少。2015 年正是 Caffe 等深度学习框架火热的时候,而 Neon 凭借其卓越的性能自然获得了大家的关注。用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园

  在凭借 Neon 一炮而红后,Nervana 在 2016 年初宣布了其更加野心勃勃的计划,即 Nervana Cloud。在 Nervana Cloud 中,Nervana 将会把 Neon 框架运行在其为 Neon 专门优化的 Nervana Engine 芯片上。

  Nervana 宣布这样的组合将会实现 10 倍于 Nvidia Titan X 的性能。可以说,在大多数半导体公司对于 AI 还持观望态度的 2016 年初,Nervana 宣布这样大计划可谓是站在了时代的前沿。而且,Nervana 对于市场的判断非常准确:因为就在不久之后,AI 芯片就成为了为整个行业公认的风口,而 Nervana 也在 2016 年下半年被 Intel 以 4 亿美元收购。在收购的时候,Nervana 并没有发布任何芯片细节:我们可以估计在收购时,大概率 Nervana 还只有一个芯片架构设计,并没有真正的芯片原型,更没有芯片产品。

  在 Nervana 被 Intel 收购之后,其产品也逐渐融入 Intel 的产品路线图。然而,Nervana 预想中的 Nervana Engine 进度并不顺利。在被收购后,Nervana Engine 重新定名为 Crest 系列。2017 年初,Intel 发布了 Nervana Lake Crest 的一些细节,并且宣布 2017 年上半年将会有芯片成品。到了 2018 年中,Intel 宣布 Lake Crest 只是一个试用版的原型产品,而正式的芯片产品命名为 Spring Crest,将会于 2019 年正式发售。在那个时候,Lake Crest 的性能指标为 12 核,32GB HBM 内存,峰值算力为 38TOP/s。

  在 2019 年八月的 Hot Chips,Intel 又发布了 Nervana 芯片的相关更新:Nervana 将发售两种芯片,一种是针对服务器端训练应用的 Spring Crest NNP-T,它将具有 119TOPS 的峰值算力,并且通过 CoWoS 高级封装技术实现多芯片互联;而另一款则是针对边缘计算的 Spring Hill NNP-I,功耗 10W,能效比为 4.6TOPS/W。然而,在 2019 年我们并未得到 Spring Crest 系列真正商用的消息,直到最近才得到它已经被取消的新闻。  

用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园
Intel 在 2017 年发布的 Nervana Lake Crest 架构,拥有 Tensor-based architecture、Flexpoint、Silicon Interposer 等多个热门词汇

  靠谱的 Habana

  相比产品迟迟不能量产的 Nervana,来自以色列的初创公司 Habana 可以说是实在也靠谱多了。

  Habana 的芯片分为两个系列,即针对训练的 Gaudi 系列和针对推理的 Goya 系列。与 Nervana 最大的不同在于,Habana 的两个芯片系列目前都已经有成品芯片供客户使用,目前据悉已经收获了一些数据中心客户的青睐。

  Habana 的芯片架构可以用“实在”来概括。其架构并没有用许多花哨的概念性技术——在技术白皮书中,Habana 直接明了地告诉大家其架构就是 VLIW SIMD,一种广为人知的架构。用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园

用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园

  VLIW 和 SIMD 技术早在上世纪就已经提出,到今天已经拥有超过 20 年的历史。其中,SIMD(单指令流多数据流)架构的核心是利用数据并行性,让处理器只需要一条指令就能处理大量并行数据,该技术早已或多或少地应用在高性能计算处理器中(例如 GPU 使用的 SIMT 技术可以认为是 SIMD 技术的一种衍生)。SIMD 对于存在大量数据并行的深度学习来说非常合适,这也是 Habana 在其深度学习加速芯片中使用 SIMD 的主要原因。

  VLIW 技术(超长指令字)则是另一个用于并行计算的重要技术,其核心是让编译器去找出在一个指令中能并行执行并充分利用处理器资源的多个计算操作。在通用计算时代,VLIW 曾遭遇了一次失败(本世纪初的 Intel 的 Itanium 系列),因为在通用计算时代程序中会有大量的分支判断,从而造成静态编译器难以预测可以并行操作的指令,造成性能损失。然而,VLIW 并未被人抛弃,在 20 年间 VLIW 在 DSP 等计算较为规整的应用领域获得了一席之地,直到今天深度学习时代又重现江湖。在深度学习应用中,计算很规整,因此编译器可以很好地预测操作并行性并作相应调度。而一旦使用 VLIW,则用于深度学习加速的处理器可以省去传统超标量处理器中复杂的片上硬件调度模块,从而可以把芯片面积留给真正用于计算的单元。

  可以说 Habana 使用了两个广为人知(但是非常适合深度学习)的技术实打实地把芯片做了出来,并且在工程上把细节做到了完美。事实上,我们认为 Habana 芯片的工程量并不小,尤其是在硬件之外的软件编译器部分——因为 VLIW 需要一个非常高效的编译器才能保证其性能,即使是在计算较规整的深度学习应用,做好这样的编译器也并不容易。

  基于其扎实的产品,Habana 已经开始了与多个云端数据中心客户的合作,并且于去年底被 Intel 收购。

  Intel 需要什么样的 AI 芯片产品

  对于 Intel 来说,在错过了移动计算之后,人工智能时代不能再错过了。目前来看,Intel 在人工智能领域的终端计算(收购 Movidius)、边缘计算和云端计算都有布局,但是重中之重还是利用 Intel 一直以来在云数据中心的强势地位来确保打下云计算人工智能芯片市场。这也是它接连收购 Nervana 和 Habana 这两家云端人工智能芯片公司原因。

  那么,Intel 究竟需要什么样的芯片产品呢?首先,Intel 需要一个能按时交付不跳票的产品。在这个时间点上,云端人工智能芯片在几年内成为数据中心的刚需已成定局,如果 Intel 没法在近期打破 Nvidia 的垄断真正打入云端人工智能芯片市场,那么未来想要打入会越来越困难。更关键的是,目前云数据中心的几大巨头都在自己布局芯片,例如 Google 已经有了 TPU,Amazon、阿里巴巴自研的深度学习加速芯片也已经流片完成,腾讯也投资了本土的 GPU 初创公司燧原,因此如果等到几年后云数据中心都开始使用自研芯片的时候,Intel 就更难打入这个市场了。这也是 Intel 使用已经有产品的 Habana 替代迟迟不能交付的 Nervana 最关键的原因。

  其次,从技术上来说,云端芯片最关键的门槛在于可扩展性,即如何能保证云端芯片在大规模部署(包括一机多卡,多机等情形)的时候,其总体性能可以保持接近线性增长。可扩展性门槛高的原因是它是一个系统工程,并非是把单芯片性能做好就行了——要做到可扩展性,需要在设计芯片的同时就考虑其与其他芯片通信的能力,同时需要在软件上也给予大量的支持才能让整个系统的性能充分发挥。这事实上需要非常高的工程量,同时也需要团队能对于整个分布式系统有深入的理解才能把系统做好。

  我们看到,Habana 在这方面交出了令人满意的答卷:Habana 的芯片上自带 RDMA 模组,因此可以支持大规模的分布式计算;另外,在设计底层编译器和软件架构的时候也充分考虑了软硬件协同系统设计,因此 Habana 的可扩展性非常好。根据官方公布的数字,其分布式总体性能甚至在处理器数量大于 600 的时候也能接近线性,从而比起同样处理器数量的 Nvidia V100 GPU,其训练性能提高了接近 4 倍,这是一个非常了不起的结果,其中必定包含了大量芯片和软件/算法工程师的努力。

用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园

用Habana取代Nervana!英特尔为何这样做?-冯金伟博客园  综合以上的分析,我们认为 Intel 用 Habana Gaudi 系列产品代替原计划中的 Nervana Spring Crest 可以概括为是“高质量系统工程的胜利”。之后 Intel 在云端人工智能芯片领域能否真正打开市场,让我们拭目以待。