so user does not have to manually move inputs from CPU -> GPU.
Parameters:
      * module (nn.Module) -- This is the module to be wrapped
        with FSDP.
  * **process_group** (*Optional**[**Union**[**ProcessGroup**,
    **Tuple**[**ProcessGroup**, **ProcessGroup**]**]**]*) --
    Optional[Union[ProcessGroup, Tuple[ProcessGroup,
    ProcessGroup]]] This is the process group used for collective
    communications and the one over which the model is sharded.
    For hybrid sharding strategies such as
    "ShardingStrategy.HYBRID_SHARD" users can pass in a tuple of
    process groups representing the groups to shard and replicate
    across, respectively.

  * **sharding_strategy** (*Optional**[**ShardingStrategy**]*) --
    This configures the sharding strategy used by FSDP, which may
    trade off memory saving and communication overhead. See
    "ShardingStrategy" for details. (Default: "FULL_SHARD")
