[Feature]: AutoDeploy: new load hook system
Open
Nobody has claimed this yet.
AutoDeploy
feature request
- Dominant language
- Python
- Stars
- 14.7k
- Forks
- 2.8k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 489
Description
🚀 The feature, motivation and pitch
Currently, AutoDeploy load hooks are part of PyTorch's built-in load hook system inside nn.Module.
Let's write a custom load hook system that we have more control over for the following reason:
- PyTorch's built-in load hook system is hierarchical (i.e. the order is determined by both the order of registration and the submodule hierarchy, see ticket #10348) This makes ensuring a constant order confusing. We should instead focus on having a flat load hook system where load hooks are always executed on the state dict / root module and order of execution is purely determined by the order of registration
- Execute load hooks on CPU during pre-loading. This ensures we only allocate GPU memory we actually need for the weight and ensures better control over the memory management
Alternatives
No response
Additional context
No response
Before submitting a new issue...
- Make sure you already searched for relevant issues, and checked the documentation and examples for answers to frequently asked questions.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.