copies of model parameters being offloaded to the same CPU
           memory.
     * **with_grads** (*bool**, **Optional*) -- If "True",
       gradients are also unsharded with the parameters.
       Currently, this is only supported when passing
       "use_orig_params=True" to the FSDP constructor and
       "offload_to_cpu=False" to this method. (Default: "False")

  Return type:
     *Generator*

class torch.distributed.fsdp.BackwardPrefetch(value)
This configures explicit backward prefetching, which can improve
   throughput but may slightly increase peak memory usage.
For NCCL backend, any collectives, even if issued in different
   streams, contend for the same per-device NCCL stream, which is why
   the relative order in which the collectives are issued matters for
   overlapping. The different backward prefetching settings correspond
   to different orderings.

"BACKWARD_PRE": This prefetches the next set of parameters before
