最近のサポート状況
自分のメモ用も兼ねて,horovodに最近どのような機能が追加されたか簡単に書きます.
(2018/10/2 記載)
GPUでのFP16サポート#529
allreduceするgradientをfloat32からFP16にキャストするというもの.
こういう事しても,学習精度に影響ないのですかね?chinerMNも似たようなことやってそう.
tf.keras#513
もともと,kerasはTensorflow専用ではありませんが,
kerasがTensorflowに統合され高レベルのAPIの一つとして利用可能になりました.
horovodでも対応したようです.
hierachical allreduce algorithmの改善#411
NCCL ReduceScatter - Parallelized MPI Allreduce - NCCL Allgather を利用してパフォーマンス改善.
これって,Rabensifnerのアルゴリズム(論文)を実装しましたって話かな.
IBM PoerAI DDLのサポート(紹介記事)
IBMが開発したGPUの分散向けライブラリDDL(distributed deep learning)に対応
horovod on Spark
気になるもの
Deep gradient compression implementation#453
DGCと呼ばれる,gradientを圧縮する仕組みをHorovodに取り入れたいというPR.
(ある閾値以上のgradientのみをallreduceしたりとか)
PRした人は,RestNet50 で同様のaccuracyを維持して5~10%の性能改善したよと.
本体に取り入れられるかどうかはわからないが,測定データとか見てみたい.