IBM宣称其机器学习库比TensorFlow快46倍

IBM声称,其POWER服务器上的机器学习不仅比Google Cloud中的TensorFlow更快,而且速度更快了46倍。

早在二月份,谷歌软件工程师Andreas Sterbenz 写了关于使用Google Cloud Machine Learning和TensorFlow进行大规模广告和推荐场景的点击预测。

他训练了一个模型来预测显示广告对Criteo Labs点击日志的点击,这些日志大小超过1TB,并包含来自数百万展示广告的特征值和点击反馈。

数据预处理(60分钟)之后进行实际学习,使用60台工人机器和29台参数机器进行训练。该模型花了70分钟训练,评估损失为0.1293。我们知道这是结果准确性的粗略指标。

Sterbenz然后使用不同的建模技术来获得更好的结果,减少了评估损失,这些都花费更长的时间,最终使用具有三个时期的深度神经网络(度量所有训练矢量一次用来更新权重的次数的度量),耗时78小时。

但IBM对此并不感兴趣,他们希望证明在POWER9服务器和GPU上运行的自己的培训框架可以在基本的初始培训上胜过Google Cloud Platform的89台机器。

苏黎世IBM Research的Thomas Parnell和CelestineDünner使用了相同的源数据 - Criteo Terabyte Click Logs,拥有42亿训练样例和100万个特征 - 以及相同的ML模型,逻辑回归,但是是一个不同的ML库。它被称为Snap Machine Learning

他们使用运行在四台Power System AC922服务器上的Snap ML运行会话,即8个POWER9 CPU和16个Nvidia Tesla V100 GPU。而不是花70分钟,它花费了91.5秒,快了46倍。

他们准备了一张显示Snap ML,Google TensorFlow和其他三项结果的图表:

他们表示Snap ML具有多层次的并行性,可以在集群中的不同节点间分配工作负载,利用加速器单元,并利用各个计算单元的多核并行性。

  1. 首先,数据分布在集群中的各个工作节点上
  2. 在节点上,数据在CPU和GPU并行运行的主CPU和加速GPU之间分离
  3. 数据被发送到GPU中的多个核心,并且CPU工作负载是多线程的

Snap ML具有嵌套的分层算法功能,可以利用这三个级别的并行性。

IBM研究人员并没有声称TensorFlow没有利用并行性,并且不提供Snap ML和TensorFlow之间的比较。

但他们的确说:“我们实施专门的解算器,旨在利用GPU的大规模并行架构,同时尊重GPU内存中的数据局部性,以避免大量数据传输开销。”

该报告称,采用NVLink 2.0接口的AC922服务器比采用其Tesla GPU的PCIe接口的至强服务器(至强金6150 CPU @ 2.70GHz)要快。“对于基于PCIe的设置,我们测量的有效带宽为11.8GB /秒,对于基于NVLink的设置,我们测量的有效带宽为68.1GB /秒。”

训练数据被发送到GPU以处理。NVLink系统以比PCIe系统快得多的速度向GPU发送数据块,时间为55ms,而不是318ms。

IBM团队还表示:“当我们应用于稀疏数据结构时,我们对系统中使用的算法进行了一些新的优化。”

总的来说,似乎Snap ML可以更多地利用Nvidia GPU,通过NVLink更快地将数据传输到它们,而不是通过商用x86服务器的PCIe链接。我们不知道POWER9 CPU如何与Xeons进行比较,就我们所知,IBM尚未公开发布任何POWER9与Xeon SP的比较。

无论是什么原因,46x的降幅都令人印象深刻,并且给了IBM很大的空间来推动其POWER9服务器,作为插入Nvidia GPU,运行Snap ML库以及进行机器学习的场所。

  • 发表于:
  • 原文链接http://www.theregister.co.uk/2018/03/21/ibm_machine_learning_models_trained_fast
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券