# FSDP: Can users control which parameters are offloaded to CPU?

**URL:** <https://discuss.pytorch.org/t/fsdp-can-users-control-which-parameters-are-offloaded-to-cpu/224443>\
**Category:** distributed\
**Created:** [January 30, 2026, 10:34am UTC](https://discuss.pytorch.org/t/fsdp-can-users-control-which-parameters-are-offloaded-to-cpu/224443 "2026-01-30T10:34:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![fopdoodle8](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/fopdoodle8/32/79172_2.png) [@fopdoodle8](https://discuss.pytorch.org/u/fopdoodle8)\
**Post date:** [January 30, 2026, 10:34am UTC](https://discuss.pytorch.org/t/fsdp-can-users-control-which-parameters-are-offloaded-to-cpu/224443/1 "2026-01-30T10:34:38Z")

</div>

Hi all,

I have a scenario where I’m training an RL actor model using FSDP. Both rollout and training share the same backbone.

- The model weights, after sharding, fit on GPU.
- However, the gradients and optimizer states do not fit on GPU.

My goal is to keep the **weights on GPU** for rollout while offloading **gradients and optimizer states to CPU**.

Currently, FSDP’s CPUOffloadPolicy offloads **weights, gradients, and optimizer states together** , and I haven’t found a way to selectively offload only gradients and optimizer states.

Question:

- Is there a way in FSDP to control which parameters (or their states) are offloaded to CPU?
- If not, are there recommended workarounds for this scenario?
