https://medium.com/swlh/scratch-to-sota-build-famous-classification-nets-3-train-distributed-data-parallelism-1d0527f15df4