FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Fix no-grad grad-fn lookup in ZeRO hook counting on PyTorch 2.3 (#7830) by tohtana · Pull Request #7841 · deepspeedai/DeepSpeed · GitHub

Fix no-grad grad-fn lookup in ZeRO hook counting on PyTorch 2.3 (#7830) - #7841

Merged
tjruwase merged 3 commits into
deepspeedai:masterfrom
tohtana:tohtana/fix-issue7830-zero3-grad-checkpointing-attrerror
Mar 1, 2026
Merged

Fix no-grad grad-fn lookup in ZeRO hook counting on PyTorch 2.3 (#7830)#7841
tjruwase merged 3 commits into
deepspeedai:masterfrom
tohtana:tohtana/fix-issue7830-zero3-grad-checkpointing-attrerror

Conversation

tohtana commented Feb 10, 2026

Copy link
Copy Markdown
Collaborator

Fixes #7830

In torch==2.3, _get_grad_fn_or_grad_acc can fail in backward-hook no-grad context (NoneType.next_functions), which breaks count_used_parameters_in_backward.
This PR wraps that lookup with torch.enable_grad() (matching newer torch behavior) and updates the unit test accordingly.

Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>
PyTorch 2.3's _get_grad_fn_or_grad_acc can fail in backward hooks because
it calls view_as() without torch.enable_grad(). DeepSpeed invokes this from
count_used_parameters_in_backward(), so ZeRO stage 1/2/3 can hit
AttributeError: 'NoneType' object has no attribute 'next_functions'.

Wrap the lookup in torch.enable_grad() to match newer PyTorch behavior and
keep hook counting semantics intact. Update the unit test to validate grad
mode is enabled for this lookup path instead of swallowing AttributeError.

Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>
tjruwase enabled auto-merge (squash) March 1, 2026 20:27
tjruwase merged commit bffaf45 into deepspeedai:master Mar 1, 2026
1 check passed
nathon-lee pushed a commit to nathon-lee/DeepSpeed_woo that referenced this pull request Mar 7, 2026
…speedai#7830) (deepspeedai#7841)

Fixes deepspeedai#7830

In torch==2.3, `_get_grad_fn_or_grad_acc` can fail in backward-hook
no-grad context (NoneType.next_functions), which breaks
`count_used_parameters_in_backward`.
This PR wraps that lookup with `torch.enable_grad()` (matching newer
torch behavior) and updates the unit test accordingly.

---------

Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>
Signed-off-by: nathon-lee <leejianwoo@gmail.com>
nathon-lee pushed a commit to nathon-lee/DeepSpeed_woo that referenced this pull request Mar 28, 2026
…speedai#7830) (deepspeedai#7841)

Fixes deepspeedai#7830

In torch==2.3, `_get_grad_fn_or_grad_acc` can fail in backward-hook
no-grad context (NoneType.next_functions), which breaks
`count_used_parameters_in_backward`.
This PR wraps that lookup with `torch.enable_grad()` (matching newer
torch behavior) and updates the unit test accordingly.

---------

Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>
Signed-off-by: nathon-lee <leejianwoo@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG]AttributeError in ZeRO-3 with gradient_checkpointing: 'NoneType' object has no attribute 'next_functions' (DeepSpeed 0.18.5)

2 participants


Back | FazBrowse Home | New Git URL