เชฒเซเชเชจเซ เช เชจเซเชตเชพเชฆ เชเซเชฐเซเชธเชจเซ เชถเชฐเซเชเชคเชจเซ เชชเซเชฐเซเชตเชธเชเชงเซเชฏเชพเช เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ
เชฌเชนเซเชตเชฟเชง เชเชเซเช-เชชเซเชฐเชฆเชฐเซเชถเชจ เชเชฎเซเชชเซเชฏเซเชเซเชเช เชฆเชพเชเชฒเชพเช เชชเชฐ เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ เชเชงเซเชจเชฟเช เชกเซเชช เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเชเซเชธเชจเชพ เชชเซเชฐเชถเชฟเชเซเชทเชฃ เชธเชฎเชฏเชจเซ เช เช เชตเชพเชกเชฟเชฏเชพเชฅเซ เชเชฒเชพเชเซ เช เชฅเชตเชพ เชฎเชฟเชจเชฟเช เชธเซเชงเซ เชเชเชพเชกเซ เชถเชเซ เชเซ, เชเซ เช เชคเชพเชฒเซเชฎ เชคเชเชจเซเชเชจเซ เชกเซเชช เชฒเชฐเซเชจเชฟเชเชเชจเชพ เชตเซเชฏเชตเชนเชพเชฐเซ เชเชพเชฐเซเชฏเชเซเชฐเชฎเซเชฎเชพเช เชชเซเชฐเชเชฒเชฟเชค เชฌเชจเชพเชตเซ เชเซ. เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เชธเชฎเชเชตเซเช เชเซเชเช เชเซ เชเซเชตเซ เชฐเซเชคเซ เชฌเชนเซเชตเชฟเชง เชเชฆเชพเชนเชฐเชฃเซเชฎเชพเช เชกเซเชเชพเชจเซ เชถเซเชฐ เช เชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเซ, เชเซ เชฌเชฆเชฒเชพเชฎเชพเช เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชชเชฐ เชฎเซเชเซ เช เชธเชฐ เชเชฐเซ เชเซ. เช เชเชชเชฐเชพเชเชค, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เช เชชเชฃ เชเชพเชฃเชตเซเช เชเซเชเช เชเซ เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเชตเซ เชเซ เชเซ เชเช เช เชเชฆเชพเชนเชฐเชฃ เชชเชฐ เชฌเชนเซเชตเชฟเชง เชเชฆเชพเชนเชฐเชฃเซ เชชเชฐ เชเชพเชฒเซ เชเซ.
เช เชฒเซเชเชฎเชพเช เชเชชเชฃเซ เชเชชเชจ เชกเซเชช เชฒเชฐเซเชจเชฟเชเช เชฒเชพเชเชฌเซเชฐเซเชฐเซ Apache MXNet เช เชจเซ Horovod เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเชฐเซเชจเชฟเชเช เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชถเซเชเชตเชพเชจเซเช เชตเชฟเชคเชฐเชฃ เชเชฐเชตเชพเชจเซ เชเชกเชชเซ เช เชจเซ เชธเชฐเชณ เชฐเซเชค เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถเซเช. เช เชฎเซ Horovod เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฒเชพเชญเซ เชธเซเชชเชทเซเชเชชเชฃเซ เชฆเชฐเซเชถเชพเชตเซเชถเซเช เช เชจเซ MXNet เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเช เชเซเชตเซ เชฐเซเชคเซ เชฒเชเชตเซ เชคเซ เชฆเชฐเซเชถเชพเชตเซเชถเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เชคเซ Horovod เชธเชพเชฅเซ เชตเชฟเชคเชฐเชฟเชค เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ.
Apache MXNet เชถเซเช เชเซ
เชเช เชเชชเชจ-เชธเซเชฐเซเชธ เชกเซเชช เชฒเชฐเซเชจเชฟเชเช เชซเซเชฐเซเชฎเชตเชฐเซเช เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชกเซเชช เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเช เชฌเชจเชพเชตเชตเชพ, เชคเชพเชฒเซเชฎ เชเชชเชตเชพ เช เชจเซ เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. MXNet เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเชเชจเชพ เช เชฎเชฒเซเชเชฐเชฃ เชธเชพเชฅเซ เชธเชเชเชณเชพเชฏเซเชฒ เชเชเชฟเชฒเชคเชพเชเชจเซ เช เชฎเซเชฐเซเชค เชเชฐเซ เชเซ, เชคเซ เชเซเชฌ เช เชเชพเชฐเซเชฏเชเซเชทเชฎ เช เชจเซ เชธเซเชเซเชฒเซเชฌเชฒ เชเซ เช เชจเซ เชฒเซเชเชชเซเชฐเชฟเชฏ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชญเชพเชทเชพเช เชฎเชพเชเซ API เชเชซเชฐ เชเชฐเซ เชเซ เชเซเชฎ เชเซ , , , , , , เช เชจเซ เช เชจเซเชฏ.
เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ MXNet เชฎเชพเช เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ
เชชเชฐเชฟเชฎเชพเชฃ เชธเชฐเซเชตเชฐ เช เชญเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชคเซ เชฆเชฐเซเช เชเชพเชฐเซเชฏเชเชฐ เชชเชพเชธเซเชฅเซ เชเซเชฐเซเชกเชฟเชเชจเซเชเซเชธ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ, เชเชเชคเซเชฐเซเชเชฐเชฃ เชเชฐเชตเชพ เช เชจเซ เช เชชเชกเซเชเซเชก เชเซเชฐเซเชกเชฟเชฏเชจเซเชเซเชธเชจเซ เชเชเชพเชฎเซ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชชเซเชจเชฐเชพเชตเซเชคเซเชคเชฟ เชฎเชพเชเซ เชเชพเชฎเชฆเชพเชฐเซเชจเซ เชชเชพเชเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐเชจเชพ เชธเชฎเซเชนเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชเชพเชฎเชฆเชพเชฐเซ เชฎเชพเชเซ เชธเชฐเซเชตเชฐเชจเซ เชธเชพเชเซ เชเซเชฃเซเชคเซเชคเชฐ เชจเชเซเชเซ เชเชฐเชตเซ เช เช เชธเชฐเชเชพเชฐเช เชธเซเชเซเชฒเชฟเชเชเชจเซ เชเชพเชตเซ เชเซ. เชเซ เชคเซเชฏเชพเช เชฎเชพเชคเซเชฐ เชเช เช เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชนเซเชฏ, เชคเซ เชคเซ เชเชฃเชคเชฐเซเชฎเชพเช เช เชกเชเชฃเชฐเซเชช เชฌเชจเซ เชถเชเซ เชเซ. เชคเซเชจเชพเชฅเซ เชตเชฟเชชเชฐเชฟเชค, เชเซ เชเชฃเชพ เชฌเชงเชพ เชธเชฐเซเชตเชฐเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ, เชคเซ เชเชฃเชพ-เชฅเซ-เชเชฃเชพ เชธเชเชเชพเชฐ เชฌเชงเชพ เชจเซเชเชตเชฐเซเช เชเชจเซเชเซเชถเชจเชจเซ เชฌเชเชง เชเชฐเซ เชถเชเซ เชเซ.
เชนเซเชฐเซเชตเซเชก เชถเซเช เชเซ
เชเชฌเซเชฐ เชเชพเชคเซ เชตเชฟเชเชธเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเชชเชจ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชกเซเชช เชฒเชฐเซเชจเชฟเชเช เชซเซเชฐเซเชฎเชตเชฐเซเช เชเซ. เชคเซ เชธเชฎเชเซเชฐ เชตเซเชฐเซเชเซเชธเชฎเชพเช เชฎเซเชกเชฒ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพ เช เชจเซ เชเชเชเชฆเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ NVIDIA เชเชฒเซเชเซเชเชฟเชต เชเซเชฎเซเชฏเซเชจเชฟเชเซเชถเชจเซเชธ เชฒเชพเชเชฌเซเชฐเซเชฐเซ (NCCL) เช เชจเซ เชฎเซเชธเซเช เชชเชพเชธเชฟเชเช เชเชจเซเชเชฐเชซเซเชธ (MPI) เชเซเชตเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เชเซเชฐเซเชธ-GPU เช เชจเซ เชเซเชฐเซเชธ-เชจเซเชก เชคเชเชจเซเชเซเชจเซ เชฒเชพเชญ เชฒเซ เชเซ. เชคเซ เชจเซเชเชตเชฐเซเช เชฌเซเชจเซเชกเชตเชฟเชกเซเชฅเชจเชพ เชเชชเชฏเซเชเชจเซ เชถเซเชฐเซเชทเซเช เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชกเซเชช เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเช เชฎเซเชกเชฒเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชธเซเชเซเชฒ เชเชฐเซ เชเซ. เชคเซ เชนเชพเชฒเชฎเชพเช เชเชฃเชพ เชฒเซเชเชชเซเชฐเชฟเชฏ เชฎเชถเซเชจ เชฒเชฐเซเชจเชฟเชเช เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ, เชเชเชฒเซ เชเซ , Tensorflow, Keras, เช เชจเซ PyTorch.
MXNet เช เชจเซ Horovod เชเชเซเชเชฐเชฃ
MXNet Horovod เชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเชฐเซเชจเชฟเชเช API เชฆเซเชตเชพเชฐเชพ Horovod เชธเชพเชฅเซ เชเชเซเชเซเชค เชฅเชพเชฏ เชเซ. Horovod เชธเชเชเชพเชฐ APIs horovod.broadcast(), horovod.allgather() ะธ horovod.allreduce() เชคเซเชจเชพ เชเชพเชธเซเช เชเซเชฐเชพเชซเชจเชพ เชญเชพเช เชฐเซเชชเซ, MXNet เชเชจเซเชเชฟเชจเชจเชพ เช เชธเซเชฎเซเชณ เชเซเชฒเชฌเซเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ. เช เชฐเซเชคเซ, เชธเชเชเชพเชฐ เช เชจเซ เชเชฃเชคเชฐเซ เชตเชเซเชเซเชจเชพ เชกเซเชเชพเชจเซ เช เชตเชฒเชเชฌเชจเชจเซ MXNet เชเชจเซเชเชฟเชจ เชฆเซเชตเชพเชฐเชพ เชธเชนเซเชฒเชพเชเชฅเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฅเซ เชธเซเชฎเซเชณเชจเซ เชเชพเชฐเชฃเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชฎเชพเช เชฅเชคเชพ เชจเซเชเชธเชพเชจเชจเซ เชเชพเชณเซ เชถเชเชพเชฏ. เชนเซเชฐเซเชตเซเชกเชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชตเชฟเชคเชฐเชฟเชค เชเชชเซเชเชฟเชฎเชพเชเชเชฐ เชเชฌเซเชเซเชเซเช horovod.DistributedOptimizer เชตเชฟเชธเซเชคเชฐเซ เชเซ .เชชเซเชเชฟเชฎเชพเชเชเชฐ MXNet เชฎเชพเช เชเซเชฅเซ เชคเซ เชตเชฟเชคเชฐเชฟเชค เชชเซเชฐเชพเชฎเซเชเชฐ เช เชชเชกเซเชเซเชธ เชฎเชพเชเซ เชธเชเชฌเชเชงเชฟเชค Horovod API เชจเซ เชเซเชฒ เชเชฐเซ. เช เชคเชฎเชพเชฎ เช เชฎเชฒเซเชเชฐเชฃ เชตเชฟเชเชคเซ เช เชเชคเชฟเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชชเชพเชฐเชฆเชฐเซเชถเช เชเซ.
เชเชกเชชเซ เชถเชฐเซเชเชค
เชคเชฎเซ เชคเชฎเชพเชฐเชพ MacBook เชชเชฐ MXNet เช
เชจเซ Horovod เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ MNIST เชกเซเชเชพเชธเซเช เชชเชฐ เชจเชพเชจเชพ เชเชจเซเชตเซเชฒเซเชฏเซเชถเชจเชฒ เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเชเชจเซ เชเชกเชชเชฅเซ เชคเชพเชฒเซเชฎ เชเชชเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชถเชเซ เชเซ.
เชชเซเชฐเชฅเชฎ, PyPI เชฎเชพเชเชฅเซ mxnet เช
เชจเซ horovod เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ:
pip install mxnet
pip install horovodเชจเซเชเชง: เชเซ เชคเชฎเชจเซ เชคเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเซเช เชญเซเชฒ เชเชตเซ pip horovod เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซเชเชฆเชพเช เชคเชฎเชพเชฐเซ เชเชฒ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ MACOSX_DEPLOYMENT_TARGET=10.vvเชเซเชฏเชพเช vv - เช เชคเชฎเชพเชฐเชพ MacOS เชธเชเชธเซเชเชฐเชฃเชจเซเช เชธเชเชธเซเชเชฐเชฃ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, MacOSX Sierra เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ MACOSX_DEPLOYMENT_TARGET=10.12 pip install horovod
เชชเชเซ OpenMPI เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ .
เช เชเชคเซ, เชเซเชธเซเช เชธเซเชเซเชฐเชฟเชชเซเช เชกเชพเชเชจเชฒเซเชก เชเชฐเซ mxnet_mnist.py เช เชจเซ เชตเชฐเซเชเชฟเชเช เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช MacBook เชเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช เชจเซเชเซเชจเชพ เชเชฆเซเชถเซ เชเชฒเชพเชตเซ:
mpirun -np 2 -H localhost:2 -bind-to none -map-by slot python mxnet_mnist.pyเช เชคเชฎเชพเชฐเชพ เชชเซเชฐเซเชธเซเชธเชฐเชจเชพ เชฌเซ เชเซเชฐเซ เชชเชฐ เชคเชพเชฒเซเชฎ เชเชฒเชพเชตเชถเซ. เชเชเชเชชเซเช เชจเซเชเซ เชฎเซเชเชฌ เชนเชถเซ:
INFO:root:Epoch[0] Batch [0-50] Speed: 2248.71 samples/sec accuracy=0.583640
INFO:root:Epoch[0] Batch [50-100] Speed: 2273.89 samples/sec accuracy=0.882812
INFO:root:Epoch[0] Batch [50-100] Speed: 2273.39 samples/sec accuracy=0.870000เชชเซเชฐเชฆเชฐเซเชถเชจ เชกเซเชฎเซ
เชเซเชฏเชพเชฐเซ เชเช เชเชฆเชพเชนเชฐเชฃเซ เชธเชพเชฅเซ 50 GPUs เชชเชฐ เชเชฎเซเชเชจเซเช เชกเซเชเชพเชธเซเช เชชเชฐ ResNet1-v64 เชฎเซเชกเซเชฒเชจเซ เชคเชพเชฒเซเชฎ เชเชชเชคเซ เชตเชเชคเซ p3.16xเชฎเซเชเซ EC2, เชฆเชฐเซเช AWS เชเซเชฒเชพเชเชก เชชเชฐ 8 NVIDIA Tesla V100 GPU เชงเชฐเชพเชตเซ เชเซ, เช เชฎเซ 45000 เชเชฎเซเช/เชธเซเชเชจเซเชก (เชเชเชฒเซ โโโโเชเซ, เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก เชชเซเชฐเชถเชฟเชเซเชทเชฟเชค เชจเชฎเซเชจเชพเชเชจเซ เชธเชเชเซเชฏเชพ) เชจเซเช เชคเชพเชฒเซเชฎ เชฅเซเชฐเซเชชเซเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซเชฏเซเช เชเซ. 44% เชจเซ เชถเซเชฐเซเชทเซเช เชเซเชเชธเชพเช เชธเชพเชฅเซ 90 เชฏเซเช เชชเชเซ 75.7 เชฎเชฟเชจเชฟเชเชฎเชพเช เชคเชพเชฒเซเชฎ เชชเซเชฐเซเชฃ เชฅเช.
เช เชฎเซ เชเชจเซ เชธเชฐเชเชพเชฎเชฃเซ MXNet เชจเชพ 8, 16, 32 เช เชจเซ 64 GPUs เชชเชฐ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเชพ เชตเชฟเชคเชฐเชฟเชค เชชเซเชฐเชถเชฟเชเซเชทเชฃ เช เชญเชฟเชเชฎ เชธเชพเชฅเซ เช เชจเซเชเซเชฐเชฎเซ เชเช เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เช เชจเซ เชธเชฐเซเชตเชฐ เชฅเซ เชตเชฐเซเชเชฐ เชฐเซเชถเชฟเชฏเซ 1 เชฅเซ 1 เช เชจเซ 2 เชฅเซ 1 เชธเชพเชฅเซ เชเชฐเซ เชเซ. เชคเชฎเซ เชจเซเชเซเชจเซ เชเชเซเชคเชฟ 1 เชฎเชพเช เชชเชฐเชฟเชฃเชพเชฎ เชเซเช เชถเชเซ เชเซ. เชกเชพเชฌเซ เชฌเชพเชเซเชจเชพ y-เช เชเซเชท เชชเชฐ, เชฌเชพเชฐ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชกเซ เชคเชพเชฒเซเชฎ เชเชชเชตเชพ เชฎเชพเชเซเชจเซ เชเชฌเซเชเชจเซ เชธเชเชเซเชฏเชพ เชฆเชฐเซเชถเชพเชตเซ เชเซ, เชฐเซเชเชพเช เชเชฎเชฃเซ เชฌเชพเชเซเชจเชพ y-เช เชเซเชท เชชเชฐ เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ (เชเชเชฒเซ โโโโเชเซ, เชตเชพเชธเซเชคเชตเชฟเช เช เชจเซ เชเชฆเชฐเซเชถ เชฅเซเชฐเซเชชเซเชเชจเซ เชเซเชฃเซเชคเซเชคเชฐ) เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเซ เชเซ. เชเซเชฎ เชคเชฎเซ เชเซเช เชถเชเซ เชเซ, เชธเชฐเซเชตเชฐเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชชเชธเชเชฆเชเซ เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเซ เช เชธเชฐ เชเชฐเซ เชเซ. เชเซ เชคเซเชฏเชพเช เชฎเชพเชคเซเชฐ เชเช เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชนเซเชฏ, เชคเซ 38 GPU เชชเชฐ เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเชเซเชจเซ 64% เชฅเช เชเชพเชฏ เชเซ. เชนเซเชฐเซเชตเซเชก เชเซเชตเซ เช เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชนเชพเชเชธเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเชพเชฎเชฆเชพเชฐเซเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชคเซเชฒเชจเชพเชฎเชพเช เชธเชฐเซเชตเชฐเชจเซ เชธเชเชเซเชฏเชพ เชฌเชฎเชฃเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.

เชเชเซเชคเชฟ 1. เชนเซเชฐเซเชตเซเชก เชธเชพเชฅเซ เช
เชจเซ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ MXNet เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชถเชฟเชเซเชทเชฃเชจเซ เชธเชฐเชเชพเชฎเชฃเซ
เชจเซเชเซเชจเชพ เชเซเชทเซเชเช 1 เชฎเชพเช, เช เชฎเซ 64 GPUs เชชเชฐ เชชเซเชฐเชฏเซเชเซ เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชฆเชพเชเชฒเชพ เชฆเซเช เช เชเชคเชฟเชฎ เชเชฐเซเชเชจเซ เชคเซเชฒเชจเชพ เชเชฐเซเช เชเซเช. Horovod เชธเชพเชฅเซ MXNet เชจเซ เชเชชเชฏเซเช เชธเซเชฅเซ เชเชเซ เชเชฟเชเชฎเชคเซ เชถเซเชฐเซเชทเซเช เชฅเซเชฐเซเชชเซเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ.

เชเซเชทเซเชเช 1. เชนเซเชฐเซเชตเซเชก เช
เชจเซ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชตเชเซเชเซ 2 เชฅเซ 1 เชจเชพ เชธเชฐเซเชตเชฐ เชฅเซ เชตเชฐเซเชเชฐ เชฐเซเชถเชฟเชฏเซ เชธเชพเชฅเซ เชเชฟเชเชฎเชคเชจเซ เชธเชฐเชเชพเชฎเชฃเซ.
เชชเซเชฐเชเชจเชจ เชฎเชพเชเซ เชชเชเชฒเชพเช
เชเชเชณเชจเชพ เชชเชเชฒเชพเชเชฎเชพเช, เช เชฎเซ เชคเชฎเชจเซ เชฌเชคเชพเชตเซเชถเซเช เชเซ MXNet เช เชจเซ Horovod เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซเช เชชเซเชจเชเชเชคเซเชชเชพเชฆเชจ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซเช. MXNet เชธเชพเชฅเซ เชตเชฟเชคเชฐเชฟเชค เชถเชฟเชเซเชทเชฃ เชตเชฟเชถเซ เชตเชงเซ เชเชพเชฃเชตเชพ เชฎเชพเชเซ เชตเชพเชเชเซ .
เชชเชเชฒเซเช 1
ะกะพะทะดะฐะนัะต ะบะปะฐััะตั ะพะดะฝะพัะพะดะฝัั ัะบะทะตะผะฟะปััะพะฒ ั MXNet ะฒะตััะธะธ 1.4.0 ะธะปะธ ะฒััะต ะธ Horovod ะฒะตััะธะธ 0.16.0 ะธะปะธ ะฒััะต, ััะพะฑั ะธัะฟะพะปัะทะพะฒะฐัั ัะฐัะฟัะตะดะตะปะตะฝะฝะพะต ะพะฑััะตะฝะธะต. ะะฐะผ ัะฐะบะถะต ะฝัะถะฝะพ ะฑัะดะตั ัััะฐะฝะพะฒะธัั ะฑะธะฑะปะธะพัะตะบะธ ะดะปั ะพะฑััะตะฝะธั ะฝะฐ GPU. ะะปั ะฝะฐัะธั ัะบะทะตะผะฟะปััะพะฒ ะผั ะฒัะฑัะฐะปะธ Ubuntu 16.04 Linux, ั GPU Driver 396.44, CUDA 9.2, ะฑะธะฑะปะธะพัะตะบั cuDNN 7.2.1, ะบะพะผะผัะฝะธะบะฐัะพั NCCL 2.2.13 ะธ OpenMPI 3.1.1. ะขะฐะบะถะต ะฒั ะผะพะถะตัะต ะธัะฟะพะปัะทะพะฒะฐัั , เชเซเชฏเชพเช เช เชฒเชพเชเชฌเซเชฐเซเชฐเซเช เชชเชนเซเชฒเซเชฅเซ เช เชชเซเชฐเซ-เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเซ เชเซ.
เชชเชเชฒเซเช 2
เชคเชฎเชพเชฐเซ MXNet เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช Horovod API เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเซ. MXNet Gluon API เชชเชฐ เชเชงเชพเชฐเชฟเชค เชจเซเชเซเชจเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเชชเชฏเซเช เชธเชฐเชณ เชจเชฎเซเชจเชพ เชคเชฐเซเชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชชเชนเซเชฒเซเชฅเซ เช เช เชจเซเชฐเซเชช เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเช เชนเซเชฏ เชคเซ เชฌเซเชฒเซเชกเชฎเชพเช เชฒเซเชเซเช เชเชฐเซเชฐเซ เชเซ. เชนเซเชฐเซเชตเซเชก เชธเชพเชฅเซ เชถเซเชเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เช เชนเซเช เชเซเชเชฒเชพเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชซเซเชฐเชซเชพเชฐเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
- เชคเชพเชฒเซเชฎ เชฏเซเชเซเชฏ เชเซเชฐเชพเชซเชฟเชเซเชธ เชเซเชฐ เชชเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชธเซเชฅเชพเชจเชฟเช เชนเซเชฐเซเชตเซเชก เชฐเซเชจเซเช (เชฒเชพเชเชจ 8) เช เชจเซเชธเชพเชฐ เชธเชเชฆเชฐเซเชญ เชธเซเช เชเชฐเซ.
- เชฌเชงเชพ เชเชพเชฎเชฆเชพเชฐเซ เชธเชฎเชพเชจ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชเชพเชฐเซเชฏเชเชฐเชฅเซ เชฌเชงเชพเชจเซ (เชฒเชพเชเชจ 18) เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเชฐเชฟเชฎเชพเชฃเซ เชชเชธเชพเชฐ เชเชฐเซ.
- เชนเซเชฐเซเชตเซเชก เชฌเชจเชพเชตเซ DistributedOptimizer (เชฒเชพเชเชจ 25) เชตเชฟเชคเชฐเชฟเชค เชฐเซเชคเซ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เช เชชเชกเซเช เชเชฐเชตเชพ เชฎเชพเชเซ.
เชธเชเชชเซเชฐเซเชฃ เชธเซเชเซเชฐเชฟเชชเซเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ, เชเซเชชเชพ เชเชฐเซเชจเซ Horovod-MXNet เชเชฆเชพเชนเชฐเชฃเซเชจเซ เชธเชเชฆเชฐเซเชญ เชฒเซ ะธ .
1 import mxnet as mx
2 import horovod.mxnet as hvd
3
4 # Horovod: initialize Horovod
5 hvd.init()
6
7 # Horovod: pin a GPU to be used to local rank
8 context = mx.gpu(hvd.local_rank())
9
10 # Build model
11 model = ...
12
13 # Initialize parameters
14 model.initialize(initializer, ctx=context)
15 params = model.collect_params()
16
17 # Horovod: broadcast parameters
18 hvd.broadcast_parameters(params, root_rank=0)
19
20 # Create optimizer
21 optimizer_params = ...
22 opt = mx.optimizer.create('sgd', **optimizer_params)
23
24 # Horovod: wrap optimizer with DistributedOptimizer
25 opt = hvd.DistributedOptimizer(opt)
26
27 # Create trainer and loss function
28 trainer = mx.gluon.Trainer(params, opt, kvstore=None)
29 loss_fn = ...
30
31 # Train model
32 for epoch in range(num_epoch):
33 ...เชชเชเชฒเซเช 3
MPI เชจเชฟเชฐเซเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชพเชฎเชฆเชพเชฐเซเชฎเชพเชเชจเชพ เชเชเชฎเชพเช เชฒเซเช เชเชจ เชเชฐเซ. เช เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ เชฆเชฐเซเช 4 GPU เช เชจเซ เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชเซเชฒ 16 GPU เชธเชพเชฅเซ เชเชพเชฐ เชเชฆเชพเชนเชฐเชฃเซ เชชเชฐ เชเชพเชฒเซ เชเซ. เชธเซเชเซเชเซเชธเซเชเชฟเช เชเซเชฐเซเชกเชฟเชฏเชจเซเช เชกเซเชธเซเชจเซเช (SGD) เชเชชเซเชเชฟเชฎเชพเชเชเชฐเชจเซ เชเชชเชฏเซเช เชจเซเชเซเชจเชพ เชนเชพเชฏเชชเชฐเชชเซเชฐเชพเชฎเซเชเชฐเซเชธ เชธเชพเชฅเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ:
- เชฎเซเชจเซ-เชฌเซเชเชจเซเช เชเชฆ: 256
- เชถเซเชเชตเชพเชจเซ เชฆเชฐ: 0.1
- เชเชคเชฟ: 0.9
- เชตเชเชจเชฎเชพเช เชธเชกเซ: 0.0001
เชเซเชฎ เชเซเชฎ เช เชฎเซ เชเช GPU เชฅเซ 64 GPUs เชธเซเชงเซ เชธเซเชเซเชฒ เชเชฐเซเชฏเซเช เชคเซเชฎ, เช เชฎเซ GPU เชจเซ เชธเชเชเซเชฏเชพ (0,1 GPU เชฎเชพเชเซ 1 เชฅเซ 6,4 GPUs เชฎเชพเชเซ 64) เช เชจเซเชธเชพเชฐ เชคเชพเชฒเซเชฎ เชฆเชฐเชจเซ เชฐเซเชเซเชฏ เชฐเซเชคเซ เชธเซเชเซเชฒ เชเชฐเซเชฏเซ, เชเซเชฏเชพเชฐเซ GPU เชฆเซเช เชเชฌเซเชเชจเซ เชธเชเชเซเชฏเชพ 256 เชชเชฐ เชฐเชพเชเซ ( เชจเซ เชฌเซเชเชฎเชพเชเชฅเซ 256 GPU เชฎเชพเชเซ 1 เชเชฌเซเช 16 GPU เชฎเชพเชเซ 384). GPU เชจเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชตเชงเชพเชฐเซ เชฅเชคเชพเช เชตเชเชจเชฎเชพเช เชเชเชพเชกเซ เช เชจเซ เชเชคเชฟเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชฌเชฆเชฒเชพเชฏเชพ. เช เชฎเซ NVIDIA เชเซเชธเซเชฒเชพ GPUs เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชฟเชค เชซเซเชฒเซเช64 เชเชฃเชคเชฐเซเชเชจเซ เชเชกเชชเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชซเซเชฐเชตเชฐเซเชก เชชเชพเชธ เชฎเชพเชเซ float16 เชกเซเชเชพ เชชเซเชฐเชเชพเชฐ เช เชจเซ เชเซเชฐเซเชกเชฟเชฏเชจเซเชเซเชธ เชฎเชพเชเซ float32 เชธเชพเชฅเซ เชฎเชฟเชถเซเชฐ เชเซเชเชธเชพเช เชคเชพเชฒเซเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ.
$ mpirun -np 16
-H server1:4,server2:4,server3:4,server4:4
-bind-to none -map-by slot
-mca pml ob1 -mca btl ^openib
python mxnet_imagenet_resnet50.pyเชจเชฟเชทเซเชเชฐเซเชท
เช เชฒเซเชเชฎเชพเช, เช เชฎเซ Apache MXNet เช เชจเซ Horovod เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชฎเซเชกเชฒ เชคเชพเชฒเซเชฎ เชฎเชพเชเซ เชธเซเชเซเชฒเซเชฌเชฒ เช เชญเชฟเชเชฎ เชชเชฐ เชเซเชฏเซเช. เช เชฎเซ เชเชฎเซเชเชจเซเช เชกเซเชเชพเชธเซเช เชเซ เชเซเชจเชพ เชชเชฐ ResNet50-v1 เชฎเซเชกเซเชฒเชจเซ เชคเชพเชฒเซเชฎ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ เชคเซเชจเชพ เชชเชฐ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เช เชญเชฟเชเชฎเชจเซ เชคเซเชฒเชจเชพเชฎเชพเช เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เช เชจเซ เชเชฐเซเช-เช เชธเชฐเชเชพเชฐเชเชคเชพ เชฆเชฐเซเชถเชพเชตเซ. เช เชฎเซ เชเชตเชพ เชชเชเชฒเชพเช เชชเชฃ เชธเชพเชฎเซเชฒ เชเชฐเซเชฏเชพ เชเซ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชคเชฎเซ Horovod เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเชฒเซเชเซ-เชเชจเซเชธเซเชเชจเซเชธ เชเซเชฐเซเชจเชฟเชเช เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชนเชพเชฒเชจเซ เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซ เชถเชเซ เชเซ.
เชเซ เชคเชฎเซ เชนเชฎเชฃเชพเช เช MXNet เช เชจเซ เชกเซเชช เชฒเชฐเซเชจเชฟเชเช เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ, เชคเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเซเชทเซเช เชชเชฐ เชเชพเช เชชเซเชฐเชฅเชฎ MXNet เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ. เช เชฎเซ เชฒเซเช เชตเชพเชเชเชตเชพเชจเซ เชชเชฃ เชญเชพเชฐเชชเซเชฐเซเชตเช เชญเชฒเชพเชฎเชฃ เชเชฐเซเช เชเซเช เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ.
เชเซ เชคเชฎเซ เชชเชนเซเชฒเซเชฅเซ เช MXNet เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชเซ เช เชจเซ Horovod เชธเชพเชฅเซ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเชฐเซเชจเชฟเชเช เช เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชเซ, เชคเซ เชชเชเซ เชเซเช , เชคเซเชจเซ MXNet เชฅเซ เชฌเชจเชพเชตเซ เช เชจเซ เชเชฆเชพเชนเชฐเชฃเชจเซ เช เชจเซเชธเชฐเซ เช เชฅเชตเชพ .
*เชเชฐเซเชเชจเซ เชเชฃเชคเชฐเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ EC2 เชเชฆเชพเชนเชฐเชฃเซ เชฎเชพเชเซ AWS
เชเซเชฐเซเชธ เชตเชฟเชถเซ เชตเชงเซ เชเชพเชฃเซ
เชธเซเชฐเซเชธ: www.habr.com
