导读:在过去的一个月中,Intel收购了深度学习芯片公司 Nervana Systems ,以及移动和嵌入式机器学习公司 Movidius,给未来的深度学习下了重注。而Intel所做的这一切,正是在为未来适应深度学习的数据流(DPU)架构升级布局。
这些新公司将一起解决英特尔仍在形成的难题:捕捉未来深度学习领域——这块预估达到数万亿美元的蛋糕。而这个艰巨的任务,都将通过 Intel 自己的 Knights Mill 在机器学习代码和工具方面的成果,加上软件优化的工作来实现。而与此同时,NVIDIA 正在加强其自产的GPU训练和推理芯片市场,以及配备了最新 Pascal GPU 和所需深度学习书库的自产硬件市场。
Intel 最近令人惊讶的收购行为,也成为了重磅头条,而此举使得 NVIDIA 更难说明 GPU 该如何加速(目前在模型训练占主导地位的计算引擎),想要在这个新兴市场上占有一席之地,他们还要更加努力。然而在过去的两年中,有很多新成员加入了该领域,这无疑是雪上加霜。
深度学习芯片新贵宣扬的理念是:通用体系架构(包括GPU)无法在低精度、固定点及专业性上与之比拟。事实上,我们可能进入到计算机体系结构的“寒武纪爆炸”时代,它由深度学习方面的新需求形成。不过,我们可以设想在短时间内,应用程序和用户的数量足够多,实际上就能确保芯片初创公司在等待大爆发时不会玩完。
这些新贵中,其中一家专注深度学习的初创公司名为 Wave Computing,它在 Nervana 系统方面有很多优点,这些都可以使它成为 Intel(或者其它公司)的最佳收购对象。
虽然 Wave Computing 的技术和执行方法不同于 Nervana,但公认的是:在有着低级随机舍入和其他相同技术的超低精度硬件上,进行大规模深度学习训练时,它在实用性上略胜一筹。同时该公司的 Jin Kim 告诉 The Next Platform,他们看到了自身技术对于如英特尔这类公司的价值所在。Nervana 的采购行为对大局来说是有益的,因为它表明了该类型的市场需要非通用硬件。
有一个可能性是:Intel 对于芯片的兴趣就如同对于 Nervana 的 Neon 软件框架一样,但 Wave Computing 的 Kim 说:“还有另一个会遭公司哄抢的需求未被满足:开发板和加速器板。可当我们与该领域的人交谈时发现,他们都希望有一个针对深度学习具体需求的单体系统。”
当然,在 NVIDIA 的 DGX-1 appliance 中这种东西已经存在,它配备了 Pascal generation GPUs ,且具备了进行训练和推理的所有软件。然而,Kim 说,他们已经掌握了硬件和软件技术,且可以凭借更低的功耗和更短的训练时间(理论上无需 DGX-1 appliance)击败 Pascal。关键点是除了 DGX-1 外,它是深度学习采取的第一个系统,毫无疑问,它肯定是基于一种新架构。
Wave Computing 方法基于通过其DPU处理单元的数据流架构。和 Nervana 一样,Wave 的核心部位也有一个高度可扩展的共享内存架构(有着混合内存立方体或 HMC)。
“我们都认为它们在深度学习计算工作负载方面有一些相似点,这意味着我们可以利用算法对于噪音和错误的弹性,再加上并行数据和重用数据的机会,让通用硬件很轻松地占据优势。”
Wave 的业务并不在销售加速板,它专注的是提供一个完整的排序和推理系统。这也正是 Kim 说的:数据中心网络中的即插即用节点,它可以本地支持 TensorFlow ,Hadoop,Spark,和 kafka 。系统会在 2017 年从 Q2 开始进入到 1U 和 3U 配置。他们有一个 28 nm 的测试芯片,虽然在两年前就交付验证了,但即将到来的 16 nm FinFET芯片现在正在流片,今年年底交付时将提供大幅提升。
Kim说:“第一个 28 nm 芯片可以将 16000 个处理单元置于一块硅上,但 16 nm 的 FinFEt 芯片即将问世,它可以将 64000 个处理单元置于一块硅上。”它首先将通过一个私有云,培养那些想要在系统变得可用之前就先行体验的早期用户。“我们的商业模式,并不是使用我们的云端来供服务,但是,需求非常高,而且私有云可以更快的选择出那些是想要早期访问的人。”
获取这里所有内存的负载和最重要的内存带宽能力。实际上,它与数据流处理单元自身一样重要,毕竟,如果无法移动数据的话,即使是最聪明的处理器也没什么用。当然,这只是绝大部分的移动指令,另一个主要特征是,用于深度学习工作负载的法案,在其数据重用的地方可以显著提高效率。
每个 8 位 RISC 型处理器都有 RAM 指令和局部寄存器,以保存大量局部操作的内存数据。这样使得话,就无需移动数据,只要移动指令。基本的指令序列包括:乘法、添加、转移等。每个处理单元组都集合到有着16 元素的集群中,共享算术单元(每个有2个)。这些集群组成了核心计算引擎,且可以聚集在一起单独完成 8 位的工作,或者一起做 64 位的工作(可变长度的算法)。
它的主要原理很简单。将每一个 DPUs 组合到一起,并完成多个任务。这是一个 NIMD 框架(有两种控制流),可以支持很高的内存带宽。第一代芯片在 6.7-8 GHz 之间跑来跑去,且在 150-200 瓦的范围内,但 Kim 没有评论冬季将出来下一代的芯片。每个数据流处理单元(DPUs)都成为了群集的一部分。它通过团队开发的战术调度工具包进行静态调度,且不会遇到内存一致问题,因为它明确了:在DPU的特定部分运行那些算法。
每个 DPU 有 24 个“计算机器”,且从上面你可以看出,建筑能支持高度的随机访问存储器 ,该存储器有着 4 个 HMC 和DDR4存储器(由将这些铺在一起的核心组成元素组成)。在 Wave 的 3U 配置下,他们可以把 16 台这样的机器结合在一起。
当然,它与通用处理器之间的关键区别是:低精度与固定点的数学能力。Kim说:“我们专注于在多个线程中,处理单元级别上的高度并行操作。我们还专注于高内存带宽的能力。由于它是实时可重构的,所以有可能得到支持随机四舍五入的硬件,进行混合精度的数学问题。这是深度学习向低精度发展的正确趋势,这样可以节省内存带宽。只要你可以在更高的精度下积累结果,就可以保证准确性,”
“整体的想法是,成为一个企业数据中心的 tensorflow 计算服务器节点,所有的 tensorflow 模型都以最小的修改运行,且分区也在一个可扩展的数据流架构高效运行,这样的话,整个系统都可以利用共享内存,我们就可以更好的测量 GPU ,且不消耗 CPU 。”
Wave 方法的核心是:通过随机四舍五入技术使用固定点,和许多小的高并行计算元素。Kim指着IBM和斯坦福的研究说:“使用固定点和低精度算法,你只要小心转动浮点基本相同的收敛,”如下图所示。
模型上进行推测的成本不能太高,这也是深度压缩工作为何如此重要的原因(就像来自斯坦福的 Song Han一样利用 EIE 成果)。顶部绿色线采用的是低精度、无智能四舍五入的固定点。这项研究是在几年前进行的,那时人们认为浮点数是必需的。
Kim 说:“事实上,如果你进行随机或对数为基础的四舍五入,且使用固定点训练的话,其浮点几乎都是一样的。”底部的黑色线表示是固定状态下红色和蓝色的浮点。
在系统水平的性能方面,所有厂商依然可以一起玩耍 竞争,因为 NVIDIA 的 DGX-1 appliances 并没有对很多框架进行太大冲击。然而,根据 NVIDIA 深度学习盒中现有的 P100 性能数据,以及Xeon 的实际基准,Wave 分享了以下指标。
我们能想象出一些 Wave Computing 的可能结果,其中最有可能的是“一部分大公司以收购的方式,寻找可以在价格和性能击败 NVIDIA,且与深度学习挂钩的系统。”当然,在恰当的位置,它也要有必需的软件堆栈。这一领域,NVIDIA 已经让自己的 CUDA 库与最知名的深度学习框架进行对接。
Wave Computing 系统是个容器,它可以支持微服务方向结构 ,该结构有着基于tensorflow的SDk 以运行和执行模型(有着用于tensorflow的Python和C++API ),和一个用于大型数据中心(想要支持不同的语言)的低水平 SDK。Kin 说:“目标是为了使 tensorflow 模型在没有匣子的情况下运行更快 ,尽可能的远离用户。”这听起来很像 DGX-1 Appliance,然而,Kim 说“这将是有竞争力的价格。”没有人知道这是否意味着少几千元,还是相同的价格。
需要注意的是,我们应该指出 :Kim 并没有说这是 CPU 或 GPU 的所有用户的替代物。“在某些情况下,这样的 tensorflow 分区方式,图表的某些部分将在 DPU 上运行,有一些在 CPU 上运行、还有一些在 GPU 上运行。我们的目标是用最好的混合和匹配加快速度。”它在人购买的系统中是如何形成的,以及它是怎么实施的还有待观察,但我们希望随着重点转移到新的结构,有人可以在明年结束之前抢到 Wave,且深度学习开始将其应用于有真实用户的实际系统中。