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具有多层次的并行性,可以在集群中的不同节点间分配工作负载,利用加速器单元,并利用各个计算单元的多核并行性。
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库以及进行机器学习的场所。
领取专属 10元无门槛券
私享最新 技术干货