导读:在拉斯维加斯举行的IBMTHINK大会上,IBM声称,其POWER服务器上的机器学习不仅比GoogleCloud中的TensorFlow更快,而且速度更快了46倍。他们使用一组由Criteo实验室发布的广告数据集(包含了40亿个训练样本)来训练逻辑回归分类器,结果只花了91.5秒就完成了整个训练过程,这一成绩比之前报告的最好成绩快了46倍。年2月,谷歌云官方博客披露了一组实验数据,他们在谷歌云平台上使用TensorFlow训练同样的模型,结果花了70分钟。
早在二月份,谷歌软件工程师AndreasSterbenz写了关于使用GoogleCloudMachineLearning和TensorFlow进行大规模广告和推荐场景的点击预测的文章。
他训练了一个模型来预测Criteo实验室的广告点击量,这些日志大小超过1TB,并包含来自数百万展示广告的特征值和点击反馈。
数据预处理(60分钟)之后进行实际学习,使用60台工人机器和29台参数机器进行训练。该模型花了70分钟训练,评估损失为0.,我们知道这是结果准确性的粗略指标。
然后,Sterbenz使用了不同的建模技术来获得更好的结果,减少了评估损失,但这些都花费更长的时间,所以,最终决定使用具有三个时期的深度神经网络(度量所有训练矢量一次用来更新权重的次数的度量),耗时78小时。
但IBM对此并不感兴趣,他们希望证明在POWER9服务器和GPU上运行的自己的训练框架可以在基本的初始训练上胜过谷歌云平台的89台机器。
苏黎世IBM研究中心的ThomasParnell和CelestineDünner使用相同的源数据-CriteoTerabyte点击日志,拥有42亿训练样例和万个特征-以及相同的ML模型、逻辑回归,但是是一个不同的ML库。它被称为SnapMachineLearning。
他们使用运行在四台PowerSystemAC服务器上的SnapML运行会议,这意味着有8个POWER9CPU和16个NvidiaTeslaVGPU在运行。因此,时间花费不是花70分钟,仅仅91.5秒就已经完成了,比以前快了46倍。
他们准备了一张显示SnapML、谷歌TensorFlow和其他三项结果的图表:
TensorFlow的46倍速度改进不容轻视,他们将它归因于什么?
他们表示SnapML具有多层次的并行性,可以在集群中的不同节点间分配工作负载,利用加速器单元,并利用各个计算单元的多核并行性
1.首先,数据分布在集群中的各个工作节点上
2.在一个节点上,数据在CPU和GPU并行运行的主机CPU和加速GPU之间分离
3.数据被发送到GPU中的多个核心,并且CPU工作负载是多线程的
SnapML具有嵌套的分层算法功能,可以利用这三个级别的并行性。
IBM研究人员并没有声称TensorFlow没有利用并行性,也不提供SnapML和TensorFlow之间的比较。
但他们的确说:“我们实施专门的解决方案,旨在利用GPU的大规模并行架构,同时尊重GPU内存中的数据局部性,以避免大量数据传输开销。”
该报告称,采用NVLink2.0接口的AC服务器比采用其TeslaGPU的PCIe接口的Xeon服务器(XeonGoldCPU
2.70GHz)要快。“对于基于PCIe的设置,我们测量的有效带宽为11.8GB/秒,对于基于NVLink的设置,我们测量的有效带宽为68.1GB/秒。”训练数据被发送到GPU,以在那里被处理。NVLink系统以比PCIe系统快得多的速度向GPU发送数据块,时间为55ms,而不是ms。
IBM团队还表示:“当我们应用于稀疏数据结构时,我们对系统中使用的算法进行了一些新的优化。”
总的来说,似乎SnapML可以更多地利用NvidiaGPU,通过NVLink更快地将数据传输到它们,而不是通过商用x86服务器的PCIe链接。我们不知道POWER9CPU如何与Xeons相比如何,就我们所知,IBM尚未公开发布任何直接POWER9与XeonSP的比较。
我们也不能说SnapML比TensorFlow好多少,直到我们在相同的硬件配置上运行两个吸盘。
无论是什么原因,46倍的降幅都令人印象深刻,并且给了IBM很大的空间来推动其POWER9服务器,作为插入NvidiaGPU的地方,运行SnapML库以及进行机器学习的场所。