最近專案指定要用 Horovod 分散式深度學習框架,難度不大,就是執行的時候遇到一些惱人的小問題,不影響執行,但超煩… orz
問題描述
當執行分散式訓練時,終端機上不斷輸出下列訊息,嚴重影響 log 的閱讀,但此訊息並不影響最終訓練結果。
解決辦法
感謝墨非大神解惑,他給了我兩種解決辦法:
- 過濾掉這些訊息
1
$ mpirun ... python tensorflow_word2vec.py |& grep -v "Read -1"
-
在執行 Docker 時候加上 –privileged
加上 –privileged 來執行 Docker 就會啟動所謂的特權容器 (privileged container),使容器擁有主機完整的 root 權限。但因為擁有主機完整的 root 權限,因此在容器中可以看到所有的 gpu resurce,卻也會導致我限定 gpu 使用的指令無效。
1
export CUDA_VISIBLE_DEVICES=1,3
因此若是要指定 Docker 僅看得到某些 gpu 並能採用此方法,只能透過方法一來解決。
參考資料
- tgaddair (2018-09-21)。Horovod error: Read -1, expected ….. · Issue #503 。檢自 horovod/horovod | github (2020-07-02)。
更新紀錄
最後更新日期:2020-08-11
- 2020-08-11 發布
- 2020-07-09 完稿
- 2020-07-02 起稿