比TensorFlow雲快46倍!IBM用Snap ML和Tesla V100秀肌肉

 2018-03-26 17:44:00.0

前言:TensorFlow 的機器學習庫可以說大家都已經很熟悉了,但 IBM 的研究人員們表示這都是小意思。

今年 2 月的時候,谷歌的軟件工程師 Andreas Sterbenz 曾在谷歌官方博客撰寫文章,介紹如何使用谷歌雲機器學習(Google Cloud Machine Learning)和 TensorFlow 對大規模廣告投放和推薦系統做點擊率預測。根據介紹,他用了大小爲 1TB、包含了 42 億條訓練樣本、一百萬個特徵的 Criteo Terabyte Click Logs 數據訓練了機器學習模型,用來預測未來顯示的廣告可能被點擊的概率如何。

在數據預處理之後,實際訓練過程用到了 60 臺計算服務器和 29 臺參數服務器。訓練模型花費了 70 分鐘,訓練損失最終降低到了 0.1293(訓練損失可以看作最終預測準確率的粗略近似)。

Sterbenz 也嘗試了不同的建模技術,看看能否繼續降低訓練損失。不過各種好方法基本都會帶來更長的訓練時間。最終他選用了深度神經網絡,訓練時有 3 個 epoch,一共花費了 78 小時訓練完畢。

不過這種結果對 IBM 來說毫無吸引力,他們想要藉機證明自己的訓練框架有多麼高效。他們認爲,自己的帶有 GPU 的 POWER9 服務器同樣做前一項訓練任務的話,要比谷歌雲平臺的這 89 臺服務器快多了。

比TensorFlow雲快46倍!IBM用Snap ML和Tesla V100秀肌肉

Power9 服務器架構特點

在蘇黎世 IBM 研究院工作的 Thomas Parnell 和 Celestine Dünner 也找來了同樣的 1TB 訓練數據,訓練的模型也是和前面 70 分鐘完成訓練的一樣的邏輯迴歸模型。但不同的是,他們用的不是 TensorFlow 的機器學習庫,而是 Snap Machine Learning(https://arxiv.org/pdf/1803.06333.pdf )。

IBM 兩人用的服務器是 Power System AC922,一共有八臺 POWER9 服務器,每臺服務器搭載兩塊 NVIDIA Tesla V100 GPU。訓練只經過 91.5 秒就結束了,比 Sterbenz 在谷歌雲機器學習平臺上的 70 分鐘快 46 倍。

他們也把自己的結果和其它各個系統的結果做成了圖表進行對比:

比TensorFlow雲快46倍!IBM用Snap ML和Tesla V100秀肌肉

可以看到,相比於運行在 TensorFlow 上,IBM 不僅通過 Snap ML 得到了很短的訓練時間,訓練損失也要稍低一些。

46 倍的速度提升畢竟不是一個小數目,那麼其中的改進具體有哪些呢?

根據 Thomas Parnell 和 Celestine Dünner 兩人介紹,Snap ML 中引入了許多不同層級的並行化計算設計,可以在同一個集羣內的不同節點之間分配任務量、可以發揮出加速計算單元(比如 V100 GPU)的計算能力,而且在單個計算單元中也可以利用到多核心的並行計算能力。

其中的並行化設計可以概述如下:

  • 首先把數據分配給集羣內的各個計算節點

  • 在單個節點中,數據一部分分配給 CPU、一部分分配給 GPU,CPU 和多張 GPU 可以同時進行計算

  • 計算時,GPU 中的多個核心同時參與運算,CPU 的運算負載也是多線程的,可以更好利用多核心 CPU

Snap ML 中也有內置的層級化算法,可以讓這各個級別的並行化手段高效協同運作。

IBM 的研究人員們並不是藉此指責 TensorFlow 中沒有好好利用並行化,但他們確實表示:「我們設計了專用的求解器,以便能夠完全利用這些 GPU 的海量並行計算能力;同時我們還保證了數據在 GPU 內存中的局部性,避免讓大量數據傳輸帶來額外的開銷。」

另外,AC922 服務器和 V100 GPU 之間的連接總線是 NVLink 2.0,而傳統英特爾至強服務器(比如使用 Xeon Gold 6150 CPU @ 2.70GHz)只能使用 PCI-E 總線連接到 GPU。前者的有效數據傳輸帶寬達到 68.1GB/s,後者僅有 11.8GB/s。看起來,PCI-E 總線速度可能也是系統性能的瓶頸之一,傳輸一個數據包需要 318ms,而 NVLink 2.0 只需要 55ms。

IBM 團隊還表示:「我們還爲系統中的算法設計了一些新的優化手段,可以更適合處理稀疏的數據結構。」

以上總總因素匯合起來,IBM 通過更好地利用 GPU 性能打敗了谷歌的雲服務器似乎還挺合理。不過據我們所知,IBM 目前並沒有公開提供過任何 POWER9 與英特爾至強服務器之間的直接性能對比。另一方面,關於 Snap ML 到底有多好也只有在同樣的硬件環境上運行 Snap ML 和 TensorFlow 才能知道。

(關於 Tesla V100 GPU,更多信息參見此前報道 一文詳解英偉達剛發佈的 Tesla V100 究竟牛在哪?

via theRegister

相關文章:

一文詳解英偉達剛發佈的 Tesla V100 究竟牛在哪?


文章來源:雷鋒網