Horovod error: Read -1, expected .....

最近專案指定要用 Horovod 分散式深度學習框架,難度不大,就是執行的時候遇到一些惱人的小問題,不影響執行,但超煩… orz

問題描述

當執行分散式訓練時,終端機上不斷輸出下列訊息,嚴重影響 log 的閱讀,但此訊息並不影響最終訓練結果。

log

解決辦法

感謝墨非大神解惑,他給了我兩種解決辦法:

  1. 過濾掉這些訊息
    1
     $ mpirun ... python tensorflow_word2vec.py |& grep -v "Read -1"
    
  2. 在執行 Docker 時候加上 –privileged
    加上 –privileged 來執行 Docker 就會啟動所謂的特權容器 (privileged container),使容器擁有主機完整的 root 權限。

    但因為擁有主機完整的 root 權限,因此在容器中可以看到所有的 gpu resurce,卻也會導致我限定 gpu 使用的指令無效。

    1
     export CUDA_VISIBLE_DEVICES=1,3
    

    因此若是要指定 Docker 僅看得到某些 gpu 並能採用此方法,只能透過方法一來解決。

參考資料

  1. 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 起稿