Pluto-基於Caffe的GPU多機多卡深度學習算法產品
作者
阿裏巴巴-計算平台-機器學習團隊
同Caffe的關係
- 完全兼容Caffe。Pluto基於開源庫Caffe擴展而來,是Caffe的超集,完全兼容Caffe的配置和數據,使用過Caffe的同學幾分鍾就能用Pluto跑起多機多卡版程序。
- Pluto的單機核心代碼同開源社區版本保持同步,所以開源社區提供的一些新特性我們能夠迅速merge到Pluto裏麵
新特性
我們來源於Caffe,但同時根據我們的用戶需求我們提供了一些Pluto獨有的新特性,幫助用戶在模型訓練中提高效率。
- 多機多卡,通過並行計算提高計算和收斂速度。
- 數據讀取提供多lmdb支持。開源版本隻能從一個lmdb讀取訓練數據,Pluto提供支持從多個lmdb按概率(可配置)讀取數據,可以更好的支持用戶訓練數據的增量更新,不會因為訓練數據增加而重新製作lmdb文件。
- hdf5文件prefetch支持。因為hdf5文件讀取時需要全部load進內存的特點,當以hdf5文件作為數據存儲格式時數據讀取時間同計算時間無法進行overlap。Pluto提供文件級的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
- cuDNNv2:open
Alexnet在Imagenet數據集上的實驗結果
梯度平均
在每輪計算都做一次梯度平均,可以獲得同單機一模一樣的收斂結果,即acc57.1%,計算和收斂加速比如下:

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

收斂曲線
Googlenet在Imagenet數據集上的實驗結果:
模型平均

收斂曲線
如何使用
- 在阿裏雲機器學習平台PAI上,可以選擇Caffe組件使用。
- 使用文檔見: https://help.aliyun.com/document_detail/49571.html?spm=5176.doc42745.6.548.Dd4AFR
最後更新:2017-08-15 15:32:18