เชฒเซเชเชจเซ เช
เชจเซเชตเชพเชฆ เชเซเชฐเซเชธเชจเซ เชถเชฐเซเชเชคเชจเซ เชชเซเชฐเซเชตเชธเชเชงเซเชฏเชพเช เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ
เชฌเชนเซเชตเชฟเชง เชเชเซเช-เชชเซเชฐเชฆเชฐเซเชถเชจ เชเชฎเซเชชเซเชฏเซเชเซเชเช เชฆเชพเชเชฒเชพเช เชชเชฐ เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ เชเชงเซเชจเชฟเช เชกเซเชช เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเชเซเชธเชจเชพ เชชเซเชฐเชถเชฟเชเซเชทเชฃ เชธเชฎเชฏเชจเซ เช เช เชตเชพเชกเชฟเชฏเชพเชฅเซ เชเชฒเชพเชเซ เช เชฅเชตเชพ เชฎเชฟเชจเชฟเช เชธเซเชงเซ เชเชเชพเชกเซ เชถเชเซ เชเซ, เชเซ เช เชคเชพเชฒเซเชฎ เชคเชเชจเซเชเชจเซ เชกเซเชช เชฒเชฐเซเชจเชฟเชเชเชจเชพ เชตเซเชฏเชตเชนเชพเชฐเซ เชเชพเชฐเซเชฏเชเซเชฐเชฎเซเชฎเชพเช เชชเซเชฐเชเชฒเชฟเชค เชฌเชจเชพเชตเซ เชเซ. เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เชธเชฎเชเชตเซเช เชเซเชเช เชเซ เชเซเชตเซ เชฐเซเชคเซ เชฌเชนเซเชตเชฟเชง เชเชฆเชพเชนเชฐเชฃเซเชฎเชพเช เชกเซเชเชพเชจเซ เชถเซเชฐ เช เชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเซ, เชเซ เชฌเชฆเชฒเชพเชฎเชพเช เชธเซเชเซเชฒเชฟเชเช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชชเชฐ เชฎเซเชเซ เช เชธเชฐ เชเชฐเซ เชเซ. เช เชเชชเชฐเชพเชเชค, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เช เชชเชฃ เชเชพเชฃเชตเซเช เชเซเชเช เชเซ เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเชตเซ เชเซ เชเซ เชเช เช เชเชฆเชพเชนเชฐเชฃ เชชเชฐ เชฌเชนเซเชตเชฟเชง เชเชฆเชพเชนเชฐเชฃเซ เชชเชฐ เชเชพเชฒเซ เชเซ.
เช เชฒเซเชเชฎเชพเช เชเชชเชฃเซ เชเชชเชจ เชกเซเชช เชฒเชฐเซเชจเชฟเชเช เชฒเชพเชเชฌเซเชฐเซเชฐเซ Apache MXNet เช
เชจเซ Horovod เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเชฐเซเชจเชฟเชเช เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชถเซเชเชตเชพเชจเซเช เชตเชฟเชคเชฐเชฃ เชเชฐเชตเชพเชจเซ เชเชกเชชเซ เช
เชจเซ เชธเชฐเชณ เชฐเซเชค เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถเซเช. เช
เชฎเซ Horovod เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฒเชพเชญเซ เชธเซเชชเชทเซเชเชชเชฃเซ เชฆเชฐเซเชถเชพเชตเซเชถเซเช เช
เชจเซ MXNet เชคเชพเชฒเซเชฎ เชธเซเชเซเชฐเชฟเชชเซเช เชเซเชตเซ เชฐเซเชคเซ เชฒเชเชตเซ เชคเซ เชฆเชฐเซเชถเชพเชตเซเชถเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เชคเซ Horovod เชธเชพเชฅเซ เชตเชฟเชคเชฐเชฟเชค เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ.
Apache MXNet เชถเซเช เชเซ
เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ MXNet เชฎเชพเช เชตเชฟเชคเชฐเชฟเชค เชคเชพเชฒเซเชฎ
เชนเซเชฐเซเชตเซเชก เชถเซเช เชเซ
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
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 เชคเชพเชฒเซเชฎ เชฎเชพเชเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซเช เชชเชฃ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ. เช
เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃเซ เชฎเชพเชเซ, เช
เชฎเซ GPU เชกเซเชฐเชพเชเชตเชฐ 16.04, CUDA 396.44, cuDNN 9.2 เชฒเชพเชเชฌเซเชฐเซเชฐเซ, NCCL 7.2.1 เชเซเชฎเซเชฏเซเชจเชฟเชเซเชเชฐ เช
เชจเซ OpenMPI 2.2.13 เชธเชพเชฅเซ เชเชฌเซเชจเซเชเซ 3.1.1 Linux เชชเชธเชเชฆ เชเชฐเซเชฏเซเช เชเซ. เชชเชฃ เชคเชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ
เชชเชเชฒเซเช 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 เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชเซ เช
เชจเซ Horovod เชธเชพเชฅเซ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเชฐเซเชจเชฟเชเช เช
เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชเซ, เชคเซ เชชเชเซ เชเซเช
*เชเชฐเซเชเชจเซ เชเชฃเชคเชฐเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เชเซเชฐเซเชธ เชตเชฟเชถเซ เชตเชงเซ เชเชพเชฃเซ
เชธเซเชฐเซเชธ: www.habr.com