Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix offloading saved tensor interaction with checkpointing #1913

Closed
wants to merge 5 commits into from

Conversation

janeyx99
Copy link
Contributor

@janeyx99 janeyx99 commented Oct 28, 2024

Context

What is the purpose of this PR? Is it to

  • add a new feature
  • fix a bug
  • update tests and/or documentation
  • other (please add here)

Please link to any issues this PR addresses.
Hopefully fixes #1867 once and for all

Needs pytorch/pytorch#139109 to land!

Changelog

What are the changes made in this PR?

  • Fixes checkpoint interaction with offloading. Prior, if an unpacked tensor is cached by activations checkpointing as a saved variable, it may be freed too early. This PR uses hooks (not currently in core yet, so we'll have to wait for that) to be able to coordinate this save properly.
  • I should also add a test case, but that'll take me a while to contrive lol.

Test plan

Please make sure to do each of the following if applicable to your PR. If you're unsure about any one of these just ask and we will happily help. We also have a contributing page for some guidance on contributing.

  • run pre-commit hooks and linters (make sure you've first installed via pre-commit install)
  • add unit tests for any new functionality
  • update docstrings for any new or updated methods or classes
  • run unit tests via pytest tests
  • run recipe tests via pytest tests -m integration_test
  • manually run any new or modified recipes with sufficient proof of correctness
  • include relevant commands and any other artifacts in this summary (pastes of loss curves, eval results, etc.)

UX

If your function changed a public API, please add a dummy example of what the user experience will look like when calling it.
Here is a docstring example
and a tutorial example

  • I did not change any public API
  • I have added an example to docs or docstrings

Copy link

pytorch-bot bot commented Oct 28, 2024

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/torchtune/1913

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure, 2 Cancelled Jobs

As of commit 83e6b51 with merge base 74139c9 (image):

NEW FAILURE - The following job has failed:

  • GPU tests / gpu_test (3.9, stable) (gh)
    FAILED tests/torchtune/training/test_activation_offloading.py::test_offloading_works_with_view_outputs - AttributeError: module 'torch.utils.checkpoint' has no attribute '_register_checkpoint_saved_tensor_hook'

CANCELLED JOBS - The following jobs were cancelled. Please retry:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 28, 2024
@janeyx99 janeyx99 changed the title Debugging print statements lol Fix offloading saved tensor interaction with checkpointing Oct 28, 2024
janeyx99 added a commit to pytorch/pytorch that referenced this pull request Oct 28, 2024
Needed for pytorch/torchtune#1913

Still need to add test




[ghstack-poisoned]
@janeyx99
Copy link
Contributor Author

janeyx99 commented Nov 1, 2024

Closing in favor of #1936

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

OffloadActivations(use_streams=True) producing NaN gradients: a tensor deletion data race
2 participants