閱讀726 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Pluto-基於Caffe的GPU多機多卡深度學習算法產品


作者

阿裏巴巴-計算平台-機器學習團隊

Caffe的關係

  • 完全兼容CaffePluto基於開源庫Caffe擴展而來,是Caffe的超集,完全兼容Caffe的配置和數據,使用過Caffe的同學幾分鍾就能用Pluto跑起多機多卡版程序。
  • Pluto的單機核心代碼同開源社區版本保持同步,所以開源社區提供的一些新特性我們能夠迅速mergePluto裏麵

新特性

我們來源於Caffe,但同時根據我們的用戶需求我們提供了一些Pluto獨有的新特性,幫助用戶在模型訓練中提高效率。

  • 多機多卡,通過並行計算提高計算和收斂速度。
  • 數據讀取提供多lmdb支持。開源版本隻能從一個lmdb讀取訓練數據,Pluto提供支持從多個lmdb按概率(可配置)讀取數據,可以更好的支持用戶訓練數據的增量更新,不會因為訓練數據增加而重新製作lmdb文件。
  • hdf5文件prefetch支持。因為hdf5文件讀取時需要全部load進內存的特點,當以hdf5文件作為數據存儲格式時數據讀取時間同計算時間無法進行overlapPluto提供文件級的prefetch支持,通過獨立線程在計算時preload下一份hdf5文件,縮短訓練時間。
  • Sequential learning支持。Sequence learning對於語音識別和自然語言處理中存在時序關聯的數據進行處理建模擁有天然的優勢。Pluto中提供的Sequence learning的相關支持,包括常用的RNN/LSTM以及雙向的LSTM,可以高效準確的進行自然場景圖片描述(如Image Caption)和自然語言處理中的相關建模任務。
  • 多種同步模式支持。用戶可以配置多卡間的同步輪數間隔,默認每輪同步一次;也可以配置按時間同步,即每張卡獨立的迭代一段時間後同步一次,適用於資源競爭激烈或快慢機明顯的環境。
  • Sparse 數據格式支持。支持sparse格式的訓練數據。

性能分析

實驗環境

  • GPU Device: Tesla K40m with 12GiB display memory, two cards in each box
  • Network: InfiniBand, GPU direct
  • cuDNNv2open

AlexnetImagenet數據集上的實驗結果

梯度平均
在每輪計算都做一次梯度平均,可以獲得同單機一模一樣的收斂結果,即acc57.1%,計算和收斂加速比如下:

465acf1d261512a6363b38761bf672f93c9dd3ff

模型平均 每張卡各自計算若幹輪後做一次模型平均,會 影響收斂結果 ,但是可以 提高計算加速比 ,結果如下:

76b616edd0f6280e79abcb88ce31a931a76a6c07

收斂曲線 

pluto_acc
pluto_loss

GooglenetImagenet數據集上的實驗結果:

模型平均

9d310bf062eb392e0543d68ae2c9efac9a434b01

收斂曲線

gnet_acc
gnet_loss


如何使用

 

最後更新:2017-08-15 15:32:18

  上一篇:go  世平敏感信息安全檢查係統雲端版登陸阿裏雲市場
  下一篇:go  雲服務器 ECS 實例自定義數據:自定義 yum 源、NTP 服務和 DNS 服務