Apache MXNet, Horovod เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตโ€Œเดค เดชเด เดจเด‚

เด•เต‹เดดเตโ€Œเดธเต เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดคเดฒเต‡เดจเตเดจเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏเดคเดพเดฃเต เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดญเดพเดท "เดฌเดฟเด—เต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดตเตเดฏเดพเดตเดธเดพเดฏเดฟเด• เดŽเด‚.เดŽเตฝ"

เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดธเด‚เดญเดตเด™เตเด™เดณเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดงเตเดจเดฟเด• เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฒเดฟเดฏ เด…เดณเดตเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เด†เดดเตโ€Œเดšเด•เตพ เดฎเตเดคเตฝ เดฎเดฃเดฟเด•เตเด•เต‚เดฑเตเด•เดณเต‹ เดฎเดฟเดจเดฟเดฑเตเดฑเตเด•เดณเต‹ เดตเดฐเต† เดชเดฐเดฟเดถเต€เดฒเดจ เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเด‚, เด‡เดคเต เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด เดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เดชเตเดฐเดฏเต‹เด—เด™เตเด™เดณเดฟเตฝ เดˆ เดชเดฐเดฟเดถเต€เดฒเดจ เดฐเต€เดคเดฟ เดชเตเดฐเดฌเดฒเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดกเดพเดฑเตเดฑ เดŽเด™เตเด™เดจเต† เดชเด™เตเด•เดฟเดŸเดพเดฎเต†เดจเตเดจเตเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฃเด‚, เด‡เดคเต เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเดฟเตฝ เดตเดฒเดฟเดฏ เดธเตเดตเดพเดงเต€เดจเด‚ เดšเต†เดฒเตเดคเตเดคเตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เด‡เตปเดธเตโ€Œเดฑเตเดฑเตปเดธเดฟเดฒเตเด‚ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเด‚เดญเดตเด™เตเด™เดณเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดถเต€เดฒเดจ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด™เตเด™เดจเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เด…เดฑเดฟเดžเตเดžเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เด“เดชเตเดชเตบ เดกเต€เดชเต เดฒเต‡เดฃเดฟเด‚เด—เต เดฒเตˆเดฌเตเดฐเดฑเดฟ Apache MXNet, เดนเตŠเดฑเต‹เดตเต‹เดกเต เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดกเต เดฒเต‡เดฃเดฟเด‚เด—เต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเด เดจเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเต‡เด—เดฎเต‡เดฑเดฟเดฏเดคเตเด‚ เดŽเดณเตเดชเตเดชเดตเตเดฎเดพเดฏ เดฎเดพเตผเด—เดคเตเดคเต† เด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚. Horovod เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจ เดจเต‡เดŸเตเดŸเด™เตเด™เตพ เดžเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต MXNet เดชเดฐเดฟเดถเต€เดฒเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดพเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚, เด…เด™เตเด™เดจเต† เด…เดคเต เดนเตŠเดฑเต‹เดตเต‹เดกเดฟเดจเตŠเดชเตเดชเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚.

เดŽเดจเตเดคเดพเดฃเต เด…เดชเตเดชเดพเดšเตเดšเต† MXNet

เด…เดชเตเดชเดพเดšเตเดšเต† MXNet เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด เดจ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดพเดฃเต. เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดคเด•เดณเต† MXNet เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดตเตเด‚ เด…เดณเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดœเดจเดชเตเดฐเดฟเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเด•เตพเด•เตเด•เดพเดฏเดฟ API-เด•เตพ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตˆเดคเตเดคเตบ, เดธเดฟ ++, เด•เตเดฒเต‹เดœเต‚เตผ, เดœเดพเดต, เดœเต‚เดฒเดฟเดฏ, R, เดธเตเด•เดพเดฒ เดฎเดฑเตเดฑเตเดณเตเดณเดต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต MXNet-เตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจเด‚

MXNet-เดฒเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดกเต เดฒเต‡เดฃเดฟเด‚เด—เต เดฎเตŠเดกเตเดฏเต‚เตพ เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเตผ เดธเดฎเต€เดชเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด“เดฐเต‹ เดคเตŠเดดเดฟเดฒเดพเดณเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด—เตเดฐเต‡เดกเดฟเดฏเดจเตเดฑเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เด—เตเดฐเด—เต‡เดทเตป เดจเดŸเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดŸเตเดคเตเดค เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เตพเด•เตเด•เต เดชเตเดคเตเด•เตเด•เดฟเดฏ เด—เตเดฐเต‡เดกเดฟเดฏเดจเตเดฑเตเด•เตพ เดคเดฟเดฐเดฟเด•เต† เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เดคเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดถเดฐเดฟเดฏเดพเดฏ เด…เดจเตเดชเดพเดคเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเต เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเตเดฑเต† เดคเดพเด•เตเด•เต‹เดฒเดพเดฃเต. เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเตผ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดณเตเดณเต‚เดตเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด•เดณเดฟเตฝ เด’เดฐเต เดคเดŸเดธเตเดธเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเต‡เด•เตเด•เดพเด‚. เดจเต‡เดฐเต†เดฎเดฑเดฟเดšเตเดšเต, เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเดฐเดตเดงเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เดฃเด•เตเดทเดจเตเด•เดณเตเด‚ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚.

เดŽเดจเตเดคเดพเดฃเต เดนเตŠเดฑเต‹เดตเต‹เดกเต

เดนเตŠเดฑเต‹เดตเต‹เดกเต Uber-เตฝ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดค เด’เดฐเต เดคเตเดฑเดจเตเดจ เดตเดฟเดคเดฐเดฃ เดกเต€เดชเต เดฒเต‡เดฃเดฟเด‚เด—เต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดพเดฃเต. เดตเต‹เดฑเต†เด•เตเด•เตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดฎเต‹เดกเตฝ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เดคเต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏ เด•เตเดฐเต‹เดธเต-เดœเดฟเดชเดฟเดฏเต, เด•เตเดฐเต‹เดธเต-เดจเต‹เดกเต เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เดณเดพเดฏ เดŽเตปเดตเดฟเดกเดฟเดฏ เด•เดณเด•เตเดŸเต€เดตเต เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเด•เตเด•เต‡เดทเตปเดธเต เดฒเตˆเดฌเตเดฐเดฑเดฟ (เดŽเตปเดธเดฟเดธเดฟเดŽเตฝ), เดฎเต†เดธเต‡เดœเต เดชเดพเดธเดฟเด‚เด—เต เด‡เดจเตเดฑเตผเดซเต‡เดธเต (เดŽเด‚เดชเดฟเด) เดŽเดจเตเดจเดฟเดต เดชเตเดฐเดฏเต‹เดœเดจเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฎเต‹เดกเดฒเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฌเดพเตปเดกเตโ€Œเดตเดฟเดกเตเดคเตเดคเต, เดธเตเด•เต†เดฏเดฟเดฒเตเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด‡เดคเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดคเต เดจเดฟเดฒเดตเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดœเดจเดชเตเดฐเดฟเดฏ เดฎเต†เดทเต€เตป เดฒเต‡เดฃเดฟเด‚เด—เต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต MX เดจเต†เดฑเตเดฑเต, Tensorflow, Keras, PyTorch.

MXNet, Horovod เดธเด‚เดฏเต‹เดœเดจเด‚

เดนเตŠเดฑเต‹เดตเต‹เดกเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเดกเต เดฒเต‡เดฃเดฟเด‚เด—เต API-เด•เตพ เดตเดดเดฟ MXNet Horovod-เดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. Horovod เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ API-เด•เตพ 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 เดธเดฟเดฏเดฑเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดŽเดดเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต MACOSX_DEPLOYMENT_TARGET=10.12 เดชเดฟเดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดนเต‹เดฑเต‹เดตเต‹เดกเต

เดคเตเดŸเตผเดจเตเดจเต 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

เดชเต†เตผเดซเต‹เดฎเตปเดธเต เดกเต†เดฎเต‹

เด’เดฐเต ResNet50-v1 เดฎเต‹เดกเตฝ เด’เดฐเต เด‡เดฎเต‡เดœเตเดจเต†เดฑเตเดฑเต เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเดฟเตฝ 64 GPU-เด•เดณเดฟเตฝ เดŽเดŸเตเดŸเต เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ p3.16x เดตเดฒเตเดคเต EC2, เด“เดฐเต‹เดจเตเดจเดฟเดฒเตเด‚ 8 NVIDIA Tesla V100 GPU-เด•เตพ AWS เด•เตเดฒเต—เดกเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เตพ 45000 เด‡เดฎเต‡เดœเตเด•เตพ/เดธเต†เด•เตเด•เตปเดกเต (เด…เดคเดพเดฏเดคเต, เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดฒเดญเดฟเดšเตเดš เดธเดพเดฎเตเดชเดฟเดณเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚) เดชเดฐเดฟเดถเต€เดฒเดจ เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เดจเต‡เดŸเดฟ. 44 เดฏเตเด—เด™เตเด™เตพเด•เตเด•เต เดถเต‡เดทเด‚ 90 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ 75.7% เดฎเดฟเด•เดšเตเดš เด•เตƒเดคเตเดฏเดคเดฏเต‹เดŸเต† เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟ.

8, 16, 32, 64 GPU-เด•เดณเดฟเตฝ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ MXNet-เดจเตเดฑเต† เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจ เดธเดฎเต€เดชเดจเดตเตเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเต† เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดคเต, เดฏเดฅเดพเด•เตเดฐเดฎเด‚ 1 เดฎเตเดคเตฝ 1 เดตเดฐเต†เดฏเตเด‚ 2 เดฎเตเดคเตฝ 1 เดตเดฐเต†เดฏเตเด‚ เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเดฑเตเด‚ เดธเต†เตผเดตเดฑเตเด‚ เดตเตผเด•เตเด•เตผ เด…เดจเตเดชเดพเดคเดตเตเด‚. เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚ 1-เตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดซเดฒเด‚ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดŸเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ y-เด…เด•เตเดทเดคเตเดคเดฟเตฝ, เดฌเดพเดฑเตเด•เตพ เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดฒเตˆเดจเตเด•เตพ เดตเดฒเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ y-เด…เด•เตเดทเดคเตเดคเดฟเตฝ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเต† (เด…เดคเดพเดฏเดคเต, เดฏเดฅเดพเตผเดคเตเดฅเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดคเตเดฐเต‚เดชเตเดŸเตเดŸเดฟเดจเตเดฑเต†เดฏเตเด‚ เด…เดจเตเดชเดพเดคเด‚) เดชเตเดฐเดคเดฟเดซเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเต เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเต† เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเตผ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดณเตเดณเต‚เดตเต†เด™เตเด•เดฟเตฝ, 38 GPU-เด•เดณเดฟเตฝ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค 64% เด†เดฏเดฟ เด•เตเดฑเดฏเตเดจเตเดจเต. เดนเต‹เดฑเต‹เดตเต‹เดกเดฟเดจเตเดฑเต† เด…เดคเต‡ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เด•เตˆเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดตเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด‡เดฐเดŸเตเดŸเดฟเดฏเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

Apache MXNet, Horovod เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตโ€Œเดค เดชเด เดจเด‚
เดšเดฟเดคเตเดฐเด‚ 1. เดนเตŠเดฑเต‹เดตเต‹เดกเตเดฎเดพเดฏเตเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเตเด‚ MXNet เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเด เดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเดพเดฐเดคเดฎเตเดฏเด‚

เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด• 1-เตฝ, 64 GPU-เด•เดณเดฟเตฝ เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเดฎเตเดชเต‹เตพ เด“เดฐเต‹ เดธเด‚เดญเดตเดคเตเดคเดฟเดจเตเด‚ เด…เดจเตเดคเดฟเดฎ เดตเดฟเดฒ เดžเด™เตเด™เตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดนเตŠเดฑเต‹เดตเต‹เดกเดฟเดจเตŠเดชเตเดชเด‚ MXNet เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดšเต†เดฒเดตเดฟเตฝ เดฎเดฟเด•เดšเตเดš เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เดจเตฝเด•เตเดจเตเดจเต.

Apache MXNet, Horovod เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตโ€Œเดค เดชเด เดจเด‚
เดชเดŸเตเดŸเดฟเด• 1. เดนเต‹เดฑเต‹เดตเต‹เดกเตเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเดฑเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดšเต†เดฒเดตเต เดคเดพเดฐเดคเดฎเตเดฏเด‚ 2 เดฎเตเดคเตฝ 1 เดตเดฐเต†เดฏเตเดณเตเดณ เดธเต†เตผเดตเตผ-เดตเตผเด•เตเด•เตผ เด…เดจเตเดชเดพเดคเด‚.

เดชเตเดจเดฐเตเตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดŸเดชเดŸเดฟเด•เตพ

เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ, MXNet, Horovod เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚ เดŽเด™เตเด™เดจเต† เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเต† เด•เดพเดฃเดฟเด•เตเด•เตเด‚. MXNet เดฑเต€เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเด เดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดพเตป เดˆ เดชเต‹เดธเตเดฑเตเดฑเต.

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเด เดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต MXNet เดชเดคเดฟเดชเตเดชเต 1.4.0 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดฒเตเด‚ เด‰เดฏเตผเดจเตเดจเดคเตเด‚ Horovod เดชเดคเดฟเดชเตเดชเต 0.16.0 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‰เดฏเตผเดจเตเดจเดคเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดเด•เดคเดพเดจเดฎเดพเดฏ เดธเด‚เดญเดตเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•. เดœเดฟเดชเดฟเดฏเต เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, GPU เดกเตเดฐเตˆเดตเตผ 16.04, CUDA 396.44, cuDNN 9.2 เดฒเตˆเดฌเตเดฐเดฑเดฟ, NCCL 7.2.1 เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเด•เตเด•เต‡เดฑเตเดฑเตผ, OpenMPI 2.2.13 เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดžเด™เตเด™เตพ เด‰เดฌเตเดฃเตเดŸเต 3.1.1 เดฒเดฟเดจเด•เตโ€Œเดธเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เด†เดฎเดธเต‹เตบ เดกเต€เดชเต เดฒเต‡เดฃเดฟเด‚เด—เต เดŽเดŽเด‚เด, เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

เดจเดฟเด™เตเด™เดณเตเดŸเต† MXNet เดชเดฐเดฟเดถเต€เดฒเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต Horovod API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดšเต‡เตผเด•เตเด•เตเด•. MXNet Gluon API เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เด…เดจเตเดฌเดจเตเดง เดชเดฐเดฟเดถเต€เดฒเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดฌเต‹เตพเดกเดฟเดฒเตเดณเตเดณ เดตเดฐเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. Horovod เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเด เดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเต‡เดฃเตเดŸ เดšเดฟเดฒ เดจเดฟเตผเดฃเดพเดฏเด• เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด‡เดคเดพ:

  • เดถเดฐเดฟเดฏเดพเดฏ เด—เตเดฐเดพเดซเดฟเด•เตเดธเต เด•เต‹เดฑเดฟเดฒเดพเดฃเต เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดนเตŠเดฑเต‹เดตเต‹เดกเต เดฑเดพเด™เตเด•เต (เดฒเตˆเตป 8) เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดธเดจเตเดฆเตผเดญเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•.
  • เดŽเดฒเตเดฒเดพ เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเตเด‚ เด’เดฐเต‡ เดชเตเดฐเดพเดฐเด‚เดญ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เด’เดฐเต เดคเตŠเดดเดฟเดฒเดพเดณเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดชเตเดฐเดพเดฐเด‚เดญ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเด• (เดฒเตˆเตป 18).
  • เด’เดฐเต เดนเตŠเดฑเต‹เดตเต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเตผ (เดฒเตˆเตป 25) เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด’เดฐเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดฐเต€เดคเดฟเดฏเดฟเตฝ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป.

เดชเต‚เตผเดฃเตเดฃ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฆเดฏเดตเดพเดฏเดฟ Horovod-MXNet เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• MNIST ะธ เด‡เดฎเด—เต†เดจเต†เดคเต.

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    ...

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

MPI เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเดฟเตฝ เด’เดฐเดพเดณเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเด•. เดˆ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดจเดพเดฒเต เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ 4 GPU-เด•เตพ เดตเต€เดคเดตเตเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด†เด•เต† 16 GPU-เด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดนเตˆเดชเตเดชเตผเดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดธเตเดฑเตเดฑเต‹เด•เตเด•เดพเดธเตเดฑเตเดฑเดฟเด•เต เด—เตเดฐเต‡เดกเดฟเดฏเดจเตเดฑเต เดกเดฟเดธเดจเตเดฑเต (เดŽเดธเตเดœเดฟเดกเดฟ) เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚:

  • เดฎเดฟเดจเดฟ-เดฌเดพเดšเตเดšเต เดตเดฒเตเดชเตเดชเด‚: 256
  • เดชเด เดจ เดจเดฟเดฐเด•เตเด•เต: 0.1
  • เด†เด•เตเด•เด‚: 0.9
  • เดญเดพเดฐเด‚ เด•เตเดทเดฏเด‚: 0.0001

เดžเด™เตเด™เตพ เด’เดฐเต เดœเดฟเดชเดฟเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต 64 เดœเดฟเดชเดฟเดฏเตเดตเดฟเดฒเต‡เด•เตเด•เต เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดœเดฟเดชเดฟเดฏเตเดตเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดชเดฐเดฟเดถเต€เดฒเดจ เดจเดฟเดฐเด•เตเด•เต เดžเด™เตเด™เตพ เดฐเต‡เด–เต€เดฏเดฎเดพเดฏเดฟ เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดคเต (0,1 เดœเดฟเดชเดฟเดฏเตเดตเดฟเดจเต 1 เดฎเตเดคเตฝ 6,4 เดœเดฟเดชเดฟเดฏเตเดตเดฟเดจเต 64 เดตเดฐเต†), เด…เดคเต‡เดธเดฎเดฏเด‚ เด’เดฐเต เดœเดฟเดชเดฟเดฏเตเดตเดฟเดฒเต† เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ 256 เด†เดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฟ (เด’เดฐเต เดฌเดพเดšเตเดšเดฟเตฝ เดจเดฟเดจเตเดจเต 256 GPU-เดฏเตโ€Œเด•เตเด•เต 1 เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดฎเตเดคเตฝ 16 GPU-เด•เตพเด•เตเด•เดพเดฏเดฟ 384 เดตเดฐเต†). GPU-เด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เต‚เดŸเตเดจเตเดจเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดญเดพเดฐเด‚ เด•เตเดทเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด†เด•เตเด•เด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดฎเดพเดฑเดฟ. NVIDIA เดŸเต†เดธเตโ€Œเดฒ GPU-เด•เตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ 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

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, Apache MXNet เด‰เด‚ Horovod เด‰เด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดฎเต‹เดกเตฝ เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดธเตเด•เต‡เดฒเดฌเดฟเตพ เดธเดฎเต€เดชเดจเด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต. ResNet50-v1 เดฎเต‹เดกเตฝ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเดšเตเดš เด‡เดฎเต‡เดœเต เดจเต†เดฑเตเดฑเต เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเดฟเดฒเต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเต†เตผเดตเตผ เดธเดฎเต€เดชเดจเดตเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเตเด‚ เดšเต†เดฒเดตเต-เดซเดฒเดชเตเดฐเดพเดชเตเดคเดฟเดฏเตเด‚ เดžเด™เตเด™เตพ เดชเตเดฐเด•เดŸเดฎเดพเด•เตเด•เดฟ. Horovod เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเตพเดŸเตเดŸเดฟ-เด‡เตปเดธเตโ€Œเดฑเตเดฑเตปเดธเต เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เตเดจเตเดจ เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เดžเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดจเดฟเด™เตเด™เตพ MXNet-เดฒเตเด‚ เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด เดจเดคเตเดคเดฟเดฒเตเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเต‡เดœเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด• MXNeเด†เดฆเตเดฏเด‚ MXNet เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป. เดฒเต‡เด–เดจเด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เดžเด™เตเด™เตพ เดถเด•เตเดคเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต 60 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ MXNetเด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป.

เดจเดฟเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ MXNet-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ Horovod เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตโ€Œเดค เดชเด เดจเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดจเต‹เด•เตเด•เต‚ Horovod เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเต‡เดœเต, เด‡เดคเต MXNet-เตฝ เดจเดฟเดจเตเดจเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดชเดฟเดจเตเดคเตเดŸเดฐเตเด• MNIST เด…เดฅเดตเดพ เด‡เดฎเด—เต†เดจเต†เดคเต.

* เดšเต†เดฒเดตเต เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเดคเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเดพเดฃเต เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดจเดฟเดฐเด•เตเด•เตเด•เตพ EC2 เดธเด‚เดญเดตเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ AWS

เด•เต‹เดดเตเดธเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเตเด• "เดฌเดฟเด—เต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดตเตเดฏเดพเดตเดธเดพเดฏเดฟเด• เดŽเด‚.เดŽเตฝ"

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•