Support SageMaker distributed data parallel library v1.4.0
Author: roywei
Pull request: no

Hi, 
SageMaker Distributed Data Parallel Library (SMDDP) just release v1.4.0. https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel.html
In this version, we release a new API to allow SMDDP to work as a PyTorch distributed backend.

Here are the changes needed to use SMDDP v1.4.0 in HF.

Following imports are deprecated:
```
import smdistributed.dataparallel.torch.distributed as dist
from smdistributed.dataparallel.torch.parallel.distributed import DistributedDataParallel as DDP
```
You can replace with vanilla PyTorch imports
```
import torch.distributed as dist
from torch.nn.parallel import DistributedDataParallel as DDP
```

You need to import SMDDP, so PyTorch knows there is an additional backend, then initialize process group with `smddp` backend
```
import smdistributed.dataparallel.torch.torch_smddp

dist.init_process_group(backend='smddp')
```

now you can perform regular distributed collectives same as using PyTorch with NCCL.

Our documentation:
https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-modify-sdp-pt.html

Comments:
Please let us know how we can help upgrading to new SMDDP APIs, thanks!
relevant PRs:
https://github.com/aws/deep-learning-containers/pull/1630
https://github.com/huggingface/transformers/pull/9798/files

Thank you @roywei .. @philschmid FYI. Looking forward to hearing your input. Also, please let us know who can be point of contact and how we can get this change, hopefully with upcoming HF transformer release.

Hello @roywei @sandeep-krishnamurthy, 

Thanks for opening the issue! if you already know what changes need to be made, could you open a PR, this would be easier to review and test then? 



Are those the release notes? https://sagemaker.readthedocs.io/en/stable/api/training/smd_data_parallel_release_notes/smd_data_parallel_change_log.html#sagemaker-distributed-data-parallel-1-4-0-release-notes


**Breaking Changes**

* As the library is migrated into the PyTorch distributed package as a backend,
  the following smdistributed implementation APIs are deprecated in
  the SageMaker data parallal library v1.4.0 and later.
  Please use the [PyTorch distributed APIs](https://pytorch.org/docs/stable/distributed.html) instead.

  * ``smdistributed.dataparallel.torch.distributed``
  * ``smdistributed.dataparallel.torch.parallel.DistributedDataParallel``
  * Please note the slight differences between the deprecated
    ``smdistributed.dataparallel.torch`` APIs and the
    [PyTorch distributed APIs](https://pytorch.org/docs/stable/distributed.html).

    * [torch.distributed.barrier](https://pytorch.org/docs/master/distributed.html#torch.distributed.barrier)
      takes ``device_ids``, which the ``smddp`` backend does not support.
    * The ``gradient_accumulation_steps`` option in
      ``smdistributed.dataparallel.torch.parallel.DistributedDataParallel``
      is no longer supported. Please use the PyTorch
      [no_sync](https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html?highlight=no_sync#torch.nn.parallel.DistributedDataParallel.no_sync) API.


Yes, existing API is backward compatible so you will get deprecated warning now