volume builder為什麼會有缺口?DeePMD-kit的模型訓練DeePMD-kit的安裝教程,現在小編就來說說關于volume builder為什麼會有缺口?下面内容希望能幫助到你,我們來一起看看吧!
DeePMD-kit的模型訓練
DeePMD-kit的安裝教程
DeePMD-kit的數據轉換(一)
DeePMD-kit的數據轉換(二)
深度學習勢套件 DeePMD-kit和DP-GEN介紹
根據手冊,DeePMD的并行訓練是在Horovod的幫助下以同步方式實現的,那麼Horovod又是什麼呢?Horovod 是一套面向 TensorFlow 的分布式訓練框架,由 Uber 構建并開源,目前已經運行于 Uber 的 Michelangelo 機器學習即服務平台上。
Horovod 能夠簡化并加速分布式深度學習項目的啟動與運行。通過利用 MPI實現應用環狀規約,顯著提升 TensorFlow 模型的實用性與性能表現。查閱資料發現,Horovod 的分布式貌似隻支持同步更新式的數據并行,至于模型并行和異步更新式的數據并行,根據 ring-allreduce 算法可知,應該是不支持的。根據訓練進程的數量和可用的GPU卡數量,DeePMD-kit将決定是以并行(分布式)模式還是串行模式啟動訓練。
标定學習率
Horovod在數據并行模式下工作,從而産生更大的全局batch size。例如,當輸入文件中的batch size設置為2時,啟動了4個工作進程,實際批處理大小為8。因此,學習率會根據工作進程的數量自動調整以實現更好的收斂。
在相同精度下,增加卡數可以減少所需的衰減步數的數量(在上述情況下為步數的1/2),但需要在輸入文件中手動調整。
在某些情況下,當利用以線性方式統計的進程數來标定學習率時,程序不會很好地工作。可以通過設置參數scale_by_worker來嘗試sqrt或NONE,如下所示:
"learning_rate" :{
"scale_by_worker": "none",
"type": "exp"
}
效率測試
在8-GPU主機上測試示例/water/se_e2_a,随着GPU卡數量的增加,可以觀察到線性加速的效果。
GPU卡數 | 秒/100樣本 | 樣本/秒 | 加速 |
---|---|---|---|
1 | 1.4515 | 68.89 | 1.00 |
2 | 1.5962 | 62.65*2 | 1.82 |
4 | 1.7635 | 56.71*4 | 3.29 |
8 | 1.7267 | 57.91*8 | 6.72 |
訓練進程可以用horovodrun啟動,以下命令在同一主機上啟動4個進程:
CUDA_VISIBLE_DEVICES=4,5,6,7 horovodrun -np 4 \
dp train --mpi-log=workers input.json
注意:必須設置環境變量CUDA_VIREBLE_DEVICES以控制占用的主機上的并行數,在該主機上,一個進程綁定一個GPU卡。當使用MPI時,Horovod自動檢測并調用mpirun,例如:
CUDA_VISIBLE_DEVICES=4,5,6,7 mpirun -l -launcher=fork \
-hosts=localhost -np 4 dp train --mpi-log=workers input.json
在輸出的log文件中,可以看到下面的輸出信息!
[0] DEEPMD INFO ---Summary of the training---------
[0] DEEPMD INFO distributed
[0] DEEPMD INFO world size: 4
[0] DEEPMD INFO my rank: 0
[0] DEEPMD INFO node list: ['exp-13-57']
[0] DEEPMD INFO running on: exp-13-57
[0] DEEPMD INFO computing device: gpu:0
[0] DEEPMD INFO CUDA_VISIBLE_DEVICES: 0,1,2,3
[0] DEEPMD INFO Count of visible GPU: 4
[0] DEEPMD INFO num_intra_threads: 0
[0] DEEPMD INFO num_inter_threads: 0
[0] DEEPMD INFO ------------------------------------
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!