instances before constructing DDP.

Construction: The DDP constructor takes a reference to the local
  module, and broadcasts "state_dict()" from the process with rank 0
  to all other processes in the group to make sure that all model
  replicas start from the exact same state. Then, each DDP process
  creates a local "Reducer", which later will take care of the
  gradients synchronization during the backward pass. To improve
  communication efficiency, the "Reducer" organizes parameter
  gradients into buckets, and reduces one bucket at a time. Bucket
  size can be configured by setting the bucket_cap_mb argument in
  DDP constructor. The mapping from parameter gradients to buckets is
  determined at the construction time, based on the bucket size limit
  and parameter sizes. Model parameters are allocated into buckets in
  (roughly) the reverse order of "Model.parameters()" from the given
  model. The reason for using the reverse order is because DDP expects
