เจฒเฉเจ เจฆเจพ เจ
เจจเฉเจตเจพเจฆ เจเฉเจฐเจธ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจฆเฉ เจชเฉเจฐเจต เจธเฉฐเจงเจฟเจ 'เจคเฉ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจธเฉ
เจเจ เจเฉฑเจ-เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจเจฆเจพเจนเจฐเจจเจพเจ 'เจคเฉ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจเจฒเจพเจ เจเจงเฉเจจเจฟเจ เจกเฉเฉฐเจเฉ เจคเฉฐเจคเฉ เจจเฉเฉฑเจเจตเจฐเจเจพเจ เจฆเฉ เจธเจฟเจเจฒเจพเจ เจฆเฉ เจธเจฎเฉเจ เจจเฉเฉฐ เจนเจซเจผเจคเจฟเจเจ เจคเฉเจ เจเฉฐเจเจฟเจเจ เจเจพเจ เจฎเจฟเฉฐเจเจพเจ เจคเฉฑเจ เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจเจเจพ เจธเจเจฆเฉ เจนเฉ, เจเจธ เจธเจฟเจเจฒเจพเจ เจคเจเจจเฉเจ เจจเฉเฉฐ เจกเฉเฉฐเจเฉ เจธเจฟเจเจฒเจพเจ เจฆเฉ เจตเจฟเจนเจพเจฐเจ เจเจชเจฏเฉเจเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจเจฒเจฟเจค เจฌเจฃเจพเจเจเจฆเฉ เจนเฉเฅค เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเจน เจธเจฎเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจเจ เจฎเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเจพเจเจเจพ เจ เจคเฉ เจธเจฎเจเจพเจฒเฉ เจเจฐเจจเจพ เจนเฉ, เจเจฟเจธเจฆเจพ เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ 'เจคเฉ เจตเฉฑเจกเจพ เจชเฉเจฐเจญเจพเจต เจชเฉเจเจฆเจพ เจนเฉเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเจน เจตเฉ เจชเจคเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจเฉฑเจ เจธเจฟเจเจฒเจพเจ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจคเฉเจจเจพเจค เจเจฐเจจเจพ เจนเฉ เจเฉ เจเฉฑเจ เจคเฉเจ เจตเฉฑเจง เจฎเฉเจเจฟเจเจ 'เจคเฉ เจเฉฑเจฒเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเจชเจจ เจกเฉเจช เจฒเจฐเจจเจฟเฉฐเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจ
เจชเจพเจเฉ เจเจฎเจเจเจธเจจเฉเฉฑเจ เจ
เจคเฉ เจนเฉเจฐเฉเจตเฉเจก เจกเจฟเจธเจเฉเจฐเฉเจฌเจฟเจเจเจก เจฒเจฐเจจเจฟเฉฐเจ เจซเจฐเฉเจฎเจตเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจฟเฉฑเจเจฃ เจจเฉเฉฐ เจตเฉฐเจกเจฃ เจฆเฉ เจเฉฑเจ เจคเฉเจเจผ เจ
เจคเฉ เจเจธเจพเจจ เจคเจฐเฉเจเฉ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค เจ
เจธเฉเจ เจนเฉเจฐเฉเจตเฉเจก เจซเจฐเฉเจฎเจตเจฐเจ เจฆเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจพเจญเจพเจ เจจเฉเฉฐ เจธเจชเจธเจผเจ เจฐเฉเจช เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจพเจเจเฉ เจ
เจคเฉ เจฆเจฟเจเจพเจตเจพเจเจเฉ เจเจฟ เจเฉฑเจ MXNet เจธเจฟเจเจฒเจพเจ เจธเจเฉเจฐเจฟเจชเจ เจเจฟเจตเฉเจ เจฒเจฟเจเฉ เจเจพเจตเฉ เจคเจพเจ เจเฉ เจเจน เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจจเจพเจฒ เจตเฉฐเจกเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเฉเฅค
Apache MXNet เจเฉ เจนเฉ
เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจฆเฉ เจจเจพเจฒ MXNet เจตเจฟเฉฑเจ เจธเจฟเจเจฒเจพเจ เจตเฉฐเจกเฉ เจเจ
Horovod เจเฉ เจนเฉ
MXNet เจ เจคเฉ Horovod เจเจเฉเจเจฐเจฃ
MXNet Horovod เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจกเจฟเจธเจเจฐเฉเจฌเจฟเจเจเจฟเจก เจฒเจฐเจจเจฟเฉฐเจ APIs เจฆเฉเจเจฐเจพ Horovod เจจเจพเจฒ เจเจเฉเจเฉเจฐเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจนเฉเจฐเฉเจตเฉเจก เจธเฉฐเจเจพเจฐ API horovod.broadcast(), horovod.allgather() ะธ horovod.allreduce() MXNet เจเฉฐเจเจฃ เจฆเฉ เจ เจธเจฟเฉฐเจเฉเจฐเฉเจจเจธ เจเจพเจฒเจฌเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจเจธเจฆเฉ เจเจพเจธเจ เจเฉเจฐเจพเจซ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจธเฉฐเจเจพเจฐ เจ เจคเฉ เจเจฃเจจเจพ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจกเจพเจเจพ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจธเจฎเจเจพเจฒเฉเจเจฐเจจ เจเจพเจฐเจจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ เจจเฉเจเจธเจพเจจ เจคเฉเจ เจฌเจเจฃ เจฒเจ MXNet เจเฉฐเจเจฃ เจฆเฉเจเจฐเจพ เจเจธเจพเจจเฉ เจจเจพเจฒ เจธเฉฐเจญเจพเจฒเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค Horovod เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจคเจฐเจฟเจค เจเจชเจเฉเจฎเจพเจเจเจผเจฐ เจเจฌเจเฉเจเจ horovod.DistributedOptimizer เจซเฉเจฒเจฆเจพ เจนเฉ เจ เจจเฉเจเฉเจฒ MXNet เจตเจฟเฉฑเจ เจคเจพเจ เจเจฟ เจเจน เจตเฉฐเจกเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจ เฉฑเจชเจกเฉเจเจพเจ เจฒเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจนเฉเจฐเฉเจตเฉเจก API เจจเฉเฉฐ เจเจพเจฒ เจเจฐเฉเฅค เจเจน เจธเจพเจฐเฉ เจฒเจพเจเฉเจเจฐเจจ เจตเฉเจฐเจตเฉ เจ เฉฐเจคเจฎ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจชเจพเจฐเจฆเจฐเจธเจผเฉ เจนเจจเฅค
เจคเฉเจเจผ เจธเจผเฉเจฐเฉเจเจค
เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจฎเฉเจเจฌเฉเฉฑเจ 'เจคเฉ MXNet เจ
เจคเฉ เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ 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 'เจคเฉ เจเฉฑเจ ImageNet เจกเฉเจเจพเจธเฉเจ 'เจคเฉ ResNet1-v64 เจฎเจพเจกเจฒ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเฉเจฃ เจตเฉเจฒเฉ p3.16x เจตเฉฑเจกเจพ EC2, เจนเจฐเฉเจ AWS เจเจฒเจพเจเจก 'เจคเฉ 8 NVIDIA เจเฉเจธเจฒเจพ V100 GPU เจฐเฉฑเจเจฆเจพ เจนเฉ, เจ เจธเฉเจ 45000 เจเจฟเฉฑเจคเจฐ/เจธเจเจฟเฉฐเจ (เจ เจฐเจฅเจพเจค, เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจธเจฟเจเจฒเจพเจ เจชเฉเจฐเจพเจชเจค เจจเจฎเฉเจจเจฟเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ) เจฆเฉ เจธเจฟเจเจฒเจพเจ เจฅเจฐเฉเจชเฉเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจนเฉเฅค 44% เจฆเฉ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจธเจผเฉเฉฑเจงเจคเจพ เจฆเฉ เจจเจพเจฒ 90 เจฏเฉเฉฑเจเจพเจ เจฆเฉ เจฌเจพเจ เจฆ 75.7 เจฎเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเจฟเจเจฒเจพเจ เจชเฉเจฐเฉ เจนเฉเจเฅค
เจ เจธเฉเจ เจเจธเจฆเฉ เจคเฉเจฒเจจเจพ เจเฉเจฐเจฎเจตเจพเจฐ 8 เจคเฉเจ 16 เจ เจคเฉ 32 เจคเฉเจ 64 เจฆเฉ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจ เจคเฉ เจเฉฑเจ เจธเจฐเจตเจฐ เจคเฉเจ เจตเจฐเจเจฐ เจ เจจเฉเจชเจพเจค เจฆเฉ เจจเจพเจฒ 1, 1, 2 เจ เจคเฉ 1 GPUs 'เจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ MXNet เจฆเฉ เจตเฉฐเจกเฉ เจธเจฟเจเจฒเจพเจ เจชเจนเฉเฉฐเจ เจจเจพเจฒ เจเฉเจคเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจนเฉเจ เจพเจ เจเจฟเฉฑเจคเจฐ 1 เจตเจฟเฉฑเจ เจจเจคเฉเจเจพ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉเฅค เจเฉฑเจฌเฉ เจชเจพเจธเฉ y-เจงเฉเจฐเฉ 'เจคเฉ, เจชเฉฑเจเฉเจเจ เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจธเจฟเจเจฒเจพเจ เจฒเจ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเฉเจเจ เจนเจจ, เจฒเจพเจเจจเจพเจ เจธเฉฑเจเฉ เจชเจพเจธเฉ y-เจงเฉเจฐเฉ 'เจคเฉ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ (เจ เจฐเจฅเจพเจค, เจเจฆเจฐเจธเจผ เจฅเฉเจฐเฉเจชเฉเฉฑเจ เจฆเจพ เจ เจธเจฒ เจ เจจเฉเจชเจพเจค) เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเฉเจเจ เจนเจจเฅค เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจตเฉเจ เจธเจเจฆเฉ เจนเฉ, เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจเฉเจฃ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจค เจเจฐเจฆเฉ เจนเฉ. เจเฉเจเจฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจนเฉ, เจคเจพเจ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ 38 GPUs 'เจคเฉ 64% เจคเฉฑเจ เจเฉฑเจ เจเจพเจเจฆเฉ เจนเฉเฅค เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจธเจฎเจพเจจ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจฆเฉเฉฑเจเจฃเจพ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจฟเฉฑเจคเจฐ 1. เจนเฉเจฐเฉเจตเฉเจก เจ
เจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจจเจพเจฒ MXNet เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจเจฒเจพเจ เจฆเฉ เจคเฉเจฒเจจเจพ
เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเจพเจฐเจฃเฉ 1 เจตเจฟเฉฑเจ, เจ เจธเฉเจ 64 GPUs 'เจคเฉ เจชเฉเจฐเจฏเฉเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจคเฉ เจเจฆเจพเจนเจฐเจฃ เจ เฉฐเจคเจฟเจฎ เจฒเจพเจเจค เจฆเฉ เจคเฉเจฒเจจเจพ เจเจฐเจฆเฉ เจนเจพเจเฅค เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจจเจพเจฒ MXNet เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจธเจญ เจคเฉเจ เจเฉฑเจ เจเฉเจฎเจค 'เจคเฉ เจตเจงเฉเจ เจฅเฉเจฐเจฐเฉเจชเฉเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเจพเจฐเจฃเฉ 1. 2 เจคเฉเจ 1 เจฆเฉ เจธเจฐเจตเจฐ เจคเฉเจ เจตเจฐเจเจฐ เจ
เจจเฉเจชเจพเจค เจฆเฉ เจจเจพเจฒ เจนเฉเจฐเฉเจตเฉเจก เจ
เจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจตเจฟเจเจเจพเจฐ เจฒเจพเจเจค เจฆเฉ เจคเฉเจฒเจจเจพเฅค
เจฆเฉเจฌเจพเจฐเจพ เจชเฉเจฆเจพ เจเจฐเจจ เจฒเจ เจเจฆเจฎ
เจ
เจเจฒเฉ เจเจฆเจฎเจพเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเจฟเจเจพเจตเจพเจเจเฉ เจเจฟ MXNet เจ
เจคเฉ Horovod เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเฉฐเจกเฉ เจธเจฟเจเจฒเจพเจ เจฆเฉ เจจเจคเฉเจเฉ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฆเฉเจฌเจพเจฐเจพ เจคเจฟเจเจฐ เจเจฐเจจเจพ เจนเฉเฅค MXNet เจจเจพเจฒ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจเจฒเจพเจ เจฌเจพเจฐเฉ เจนเฉเจฐ เจเจพเจฃเจจ เจฒเจ เจชเฉเฉเจนเฉ
เจเจฆเจฎ 1
เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ MXNet เจธเฉฐเจธเจเจฐเจฃ 1.4.0 เจเจพเจ เจเจธ เจคเฉเจ เจเฉฑเจเฉ เจ
เจคเฉ เจนเฉเจฐเฉเจตเฉเจก เจธเฉฐเจธเจเจฐเจฃ 0.16.0 เจเจพเจ เจเจธ เจคเฉเจ เจเฉฑเจเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน เจฌเจฃเจพเจเฅค เจคเฉเจนเจพเจจเฉเฉฐ GPU เจธเจฟเจเจฒเจพเจ เจฒเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจตเฉ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจธเจพเจกเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฒเจ, เจ
เจธเฉเจ GPU เจกเฉเจฐเจพเจเจตเจฐ 16.04, CUDA 396.44, cuDNN 9.2 เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ, NCCL 7.2.1 เจเจฎเจฟเจเจจเฉเจเฉเจเจฐ เจ
เจคเฉ OpenMPI 2.2.13 เจฆเฉ เจจเจพเจฒ, Ubuntu 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 GPUsเฅค เจธเจเฉเจเฉเจธเจเจฟเจ เจเจฐเฉเจกเฉเจเจเจ เจกเฉเจธเฉเจเจ (SGD) เจเจชเจเฉเจฎเจพเจเจเจผเจฐ เจจเฉเฉฐ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจนเจพเจเจชเจฐเจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเจพเจฒ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพ:
- เจฎเจฟเฉฐเจจเฉ-เจฌเฉเจ เจฆเจพ เจเจเจพเจฐ: 256
- เจธเจฟเฉฑเจเจฃ เจฆเฉ เจฆเจฐ: 0.1
- เจเจคเฉ: 0.9
- เจญเจพเจฐ เจเจเจฃเจพ: 0.0001
เจเจฟเจตเฉเจ เจเจฟ เจ เจธเฉเจ เจเฉฑเจ GPU เจคเฉเจ 64 GPUs เจคเฉฑเจ เจธเจเฉเจฒ เจเฉเจคเจพ, เจ เจธเฉเจ GPUs เจฆเฉ เจเจฟเจฃเจคเฉ (0,1 GPU เจฒเจ 1 เจคเฉเจ 6,4 GPUs เจฒเจ 64 เจคเฉฑเจ) เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจธเจฟเจเจฒเจพเจ เจฆเฉ เจฆเจฐ เจจเฉเฉฐ เจฐเฉเจเจฟเจ เจคเฉเจฐ 'เจคเฉ เจธเจเฉเจฒ เจเฉเจคเจพ, เจเจฆเฉเจ เจเจฟ เจชเฉเจฐเจคเฉ GPU เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ 256 'เจคเฉ เจฐเฉฑเจเจฆเฉ เจนเฉเจ ( เจฆเฉ เจเฉฑเจ เจฌเฉเจ เจคเฉเจ 256 GPU เจฒเจ 1 เจเจฟเฉฑเจคเจฐ 16 GPU เจฒเจ 384)เฅค GPU เจฆเฉ เจเจฟเจฃเจคเฉ เจตเจงเจฃ เจฆเฉ เจจเจพเจฒ เจญเจพเจฐ เจเจเจฃ เจ เจคเฉ เจฎเฉเจฎเฉเจเจเจฎ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฌเจฆเจฒ เจเจเฅค เจ เจธเฉเจ NVIDIA Tesla GPUs เจฆเฉเจเจฐเจพ เจธเจฎเจฐเจฅเจฟเจค float64 เจเจฃเจจเจพเจตเจพเจ เจจเฉเฉฐ เจคเฉเจเจผ เจเจฐเจจ เจฒเจ เจซเจพเจฐเจตเจฐเจก เจชเจพเจธ เจฒเจ 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
เจธเจฟเฉฑเจเจพ
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจ เจชเจพเจเฉ เจเจฎเจเจเจธเจจเฉเฉฑเจ เจ เจคเฉ เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจฟเจคเจฐเจฟเจค เจฎเจพเจกเจฒ เจธเจฟเจเจฒเจพเจ เจฒเจ เจเฉฑเจ เจธเจเฉเจฒเฉเจฌเจฒ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจฆเฉเจเจฟเจเฅค เจ เจธเฉเจ ImageNet เจกเฉเจเจพเจธเฉเจ 'เจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเจฐเจตเจฐ เจชเจนเฉเฉฐเจ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจธเจผเจฒเจคเจพ เจ เจคเฉ เจฒเจพเจเจค-เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉเจคเจพ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเฉเจคเจพ เจเจฟเจธ 'เจคเฉ ResNet50-v1 เจฎเจพเจกเจฒ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเจฟเฉฑเจคเฉ เจเจ เจธเฉเฅค เจ เจธเฉเจ เจเจน เจเจฆเจฎ เจตเฉ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจคเฉเจธเฉเจ เจนเฉเจฐเฉเจตเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฎเจฒเจเฉ-เจเจจเจธเจเฉเจเจธ เจเจฐเฉเจจเจฟเฉฐเจ เจเจฒเจพเจเจฃ เจฒเจ เจฎเฉเจเฉเจฆเจพ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจธเฉเจงเจฃ เจฒเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเจเจฐ เจคเฉเจธเฉเจ MXNet เจ
เจคเฉ เจกเฉเฉฐเจเฉ เจธเจฟเจเจฒเจพเจ เจจเจพเจฒ เจธเจผเฉเจฐเฉเจเจค เจเจฐ เจฐเจนเฉ เจนเฉ, เจคเจพเจ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจชเฉฐเจจเฉ 'เจคเฉ เจเจพเจ
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ MXNet เจจเจพเจฒ เจเฉฐเจฎ เจเจฐ เจเฉเฉฑเจเฉ เจนเฉ เจ
เจคเฉ เจนเฉเจฐเฉเจตเฉเจก เจจเจพเจฒ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจเจฒเจพเจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเจธ 'เจคเฉ เจเฉฑเจ เจจเจเจผเจฐ เจฎเจพเจฐเฉ
* เจฒเจพเจเจค เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจฃเจจเจพ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ
เจเฉเจฐเจธ เจฌเจพเจฐเฉ เจนเฉเจฐ เจเจพเจฃเฉ
เจธเจฐเฉเจค: www.habr.com