deepspeedai / deepspeedai/DeepSpeed

Functorch support: RuntimeError: In order to use an autograd.Function with functorch transforms

Open
#7,323 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
43.1k
Forks
5k
Avg merge
4d 15h
Merged PRs (30d)
112

Description

Hi,

Are you planning to support functorch? I am currently getting:

[rank2]: File "/home/iapostol/miniconda3/envs/scaff/lib/python3.12/site-packages/deepspeed/runtime/zero/linear.py", line 109, in zero3_linear_wrap
[rank2]: return LinearFunctionForZeroStage3.apply(input, weight)
[rank2]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank2]: File "/home/iapostol/miniconda3/envs/scaff/lib/python3.12/site-packages/torch/autograd/function.py", line 577, in apply
[rank2]: raise RuntimeError(
[rank2]: RuntimeError: In order to use an autograd.Function with functorch transforms (vmap, grad, jvp, jacrev, ...), it must override the setup_context staticmethod. For more details, please see https://pytorch.org/docs/main/notes/extending.func.html

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at deepspeed/runtime/zero/linear.py:109, where LinearFunctionForZeroStage3.apply is called, and reproduce the reported failure with the relevant functorch transform. Read the linked PyTorch guidance on autograd.Function setup_context and determine the affected DeepSpeed path. Done means the reported RuntimeError no longer occurs for the supported transform.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
distributed-systems, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.