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 parameter count in ModelSummary when parameters are DTensors #20163

Merged
merged 8 commits into from
Aug 5, 2024

Conversation

awaelchli
Copy link
Contributor

@awaelchli awaelchli commented Aug 4, 2024

What does this PR do?

Fixes #20151

Running

python examples/pytorch/tensor_parallel/train.py

Before:

  | Name  | Type            | Params | Mode 
--------------------------------------------------
0 | model | FSDPTransformer | 0      | train
--------------------------------------------------
0         Trainable params
0         Non-trainable params
0         Total params
0.000     Total estimated model params size (MB)
421       Modules in train mode
0         Modules in eval mode

(shows 0 parameters)

After:

  | Name  | Type            | Params | Mode 
--------------------------------------------------
0 | model | FSDPTransformer | 6.7 B  | train
--------------------------------------------------
6.7 B     Trainable params
0         Non-trainable params
6.7 B     Total params
26,953.662Total estimated model params size (MB)
421       Modules in train mode
0         Modules in eval mode

(shows correct counts)


📚 Documentation preview 📚: https://pytorch-lightning--20163.org.readthedocs.build/en/20163/

cc @carmocca @justusschock @awaelchli

@github-actions github-actions bot added fabric lightning.fabric.Fabric pl Generic label for PyTorch Lightning package labels Aug 4, 2024
@awaelchli awaelchli added this to the 2.4 milestone Aug 4, 2024
@awaelchli awaelchli added strategy: fsdp Fully Sharded Data Parallel fun Staff contributions outside working hours - to differentiate from the "community" label callback: model summary bug Something isn't working labels Aug 4, 2024
@awaelchli awaelchli marked this pull request as ready for review August 4, 2024 23:32
Copy link
Contributor

github-actions bot commented Aug 4, 2024

⚡ Required checks status: All passing 🟢

Groups summary

🟢 pytorch_lightning: Tests workflow
Check ID Status
pl-cpu (macOS-13, lightning, 3.9, 2.1, oldest) success
pl-cpu (macOS-14, lightning, 3.10, 2.1) success
pl-cpu (macOS-14, lightning, 3.11, 2.2) success
pl-cpu (macOS-14, lightning, 3.11, 2.3) success
pl-cpu (macOS-14, lightning, 3.12, 2.4) success
pl-cpu (ubuntu-20.04, lightning, 3.9, 2.1, oldest) success
pl-cpu (ubuntu-20.04, lightning, 3.10, 2.1) success
pl-cpu (ubuntu-20.04, lightning, 3.11, 2.2) success
pl-cpu (ubuntu-20.04, lightning, 3.11, 2.3) success
pl-cpu (ubuntu-20.04, lightning, 3.12, 2.4) success
pl-cpu (windows-2022, lightning, 3.9, 2.1, oldest) success
pl-cpu (windows-2022, lightning, 3.10, 2.1) success
pl-cpu (windows-2022, lightning, 3.11, 2.2) success
pl-cpu (windows-2022, lightning, 3.11, 2.3) success
pl-cpu (windows-2022, lightning, 3.12, 2.4) success
pl-cpu (macOS-14, pytorch, 3.9, 2.1) success
pl-cpu (ubuntu-20.04, pytorch, 3.9, 2.1) success
pl-cpu (windows-2022, pytorch, 3.9, 2.1) success
pl-cpu (macOS-12, pytorch, 3.10, 2.1) success
pl-cpu (ubuntu-22.04, pytorch, 3.10, 2.1) success
pl-cpu (windows-2022, pytorch, 3.10, 2.1) success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py, tests/tests_pytorch/utilities/test_model_summary.py.

🟢 pytorch_lightning: Azure GPU
Check ID Status
pytorch-lightning (GPUs) (testing Lightning | latest) success
pytorch-lightning (GPUs) (testing PyTorch | latest) success

These checks are required after the changes to src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py, tests/tests_pytorch/utilities/test_model_summary.py, src/lightning/fabric/utilities/distributed.py.

🟢 pytorch_lightning: Benchmarks
Check ID Status
lightning.Benchmarks success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py.

🟢 fabric: Docs
Check ID Status
docs-make (fabric, doctest) success
docs-make (fabric, html) success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py.

🟢 pytorch_lightning: Docs
Check ID Status
docs-make (pytorch, doctest) success
docs-make (pytorch, html) success

These checks are required after the changes to src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py.

🟢 lightning_fabric: CPU workflow
Check ID Status
fabric-cpu (macOS-13, lightning, 3.9, 2.1, oldest) success
fabric-cpu (macOS-14, lightning, 3.10, 2.1) success
fabric-cpu (macOS-14, lightning, 3.11, 2.2) success
fabric-cpu (macOS-14, lightning, 3.11, 2.3) success
fabric-cpu (macOS-14, lightning, 3.12, 2.4) success
fabric-cpu (ubuntu-20.04, lightning, 3.9, 2.1, oldest) success
fabric-cpu (ubuntu-20.04, lightning, 3.10, 2.1) success
fabric-cpu (ubuntu-20.04, lightning, 3.11, 2.2) success
fabric-cpu (ubuntu-20.04, lightning, 3.11, 2.3) success
fabric-cpu (ubuntu-20.04, lightning, 3.12, 2.4) success
fabric-cpu (windows-2022, lightning, 3.9, 2.1, oldest) success
fabric-cpu (windows-2022, lightning, 3.10, 2.1) success
fabric-cpu (windows-2022, lightning, 3.11, 2.2) success
fabric-cpu (windows-2022, lightning, 3.11, 2.3) success
fabric-cpu (windows-2022, lightning, 3.12, 2.4) success
fabric-cpu (macOS-14, fabric, 3.9, 2.1) success
fabric-cpu (ubuntu-20.04, fabric, 3.9, 2.1) success
fabric-cpu (windows-2022, fabric, 3.9, 2.1) success
fabric-cpu (macOS-12, fabric, 3.10, 2.1) success
fabric-cpu (ubuntu-22.04, fabric, 3.10, 2.1) success
fabric-cpu (windows-2022, fabric, 3.10, 2.1) success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, tests/tests_fabric/utilities/test_distributed.py.

🟢 lightning_fabric: Azure GPU
Check ID Status
lightning-fabric (GPUs) (testing Fabric | latest) success
lightning-fabric (GPUs) (testing Lightning | latest) success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, tests/tests_fabric/utilities/test_distributed.py.

🟢 mypy
Check ID Status
mypy success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py.

🟢 install
Check ID Status
install-pkg (ubuntu-22.04, fabric, 3.9) success
install-pkg (ubuntu-22.04, fabric, 3.11) success
install-pkg (ubuntu-22.04, pytorch, 3.9) success
install-pkg (ubuntu-22.04, pytorch, 3.11) success
install-pkg (ubuntu-22.04, lightning, 3.9) success
install-pkg (ubuntu-22.04, lightning, 3.11) success
install-pkg (ubuntu-22.04, notset, 3.9) success
install-pkg (ubuntu-22.04, notset, 3.11) success
install-pkg (macOS-12, fabric, 3.9) success
install-pkg (macOS-12, fabric, 3.11) success
install-pkg (macOS-12, pytorch, 3.9) success
install-pkg (macOS-12, pytorch, 3.11) success
install-pkg (macOS-12, lightning, 3.9) success
install-pkg (macOS-12, lightning, 3.11) success
install-pkg (macOS-12, notset, 3.9) success
install-pkg (macOS-12, notset, 3.11) success
install-pkg (windows-2022, fabric, 3.9) success
install-pkg (windows-2022, fabric, 3.11) success
install-pkg (windows-2022, pytorch, 3.9) success
install-pkg (windows-2022, pytorch, 3.11) success
install-pkg (windows-2022, lightning, 3.9) success
install-pkg (windows-2022, lightning, 3.11) success
install-pkg (windows-2022, notset, 3.9) success
install-pkg (windows-2022, notset, 3.11) success

These checks are required after the changes to src/lightning/fabric/utilities/distributed.py, src/lightning/pytorch/utilities/model_summary/model_summary.py, src/lightning/pytorch/utilities/model_summary/model_summary_deepspeed.py.


Thank you for your contribution! 💜

Note
This comment is automatically generated and updates for 60 minutes every 180 seconds. If you have any other questions, contact carmocca for help.

Copy link

codecov bot commented Aug 4, 2024

Codecov Report

Attention: Patch coverage is 94.11765% with 1 line in your changes missing coverage. Please review.

Project coverage is 89%. Comparing base (d4de8e2) to head (d4cdde4).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #20163   +/-   ##
=======================================
- Coverage      89%      89%   -0%     
=======================================
  Files         267      267           
  Lines       23063    23071    +8     
=======================================
+ Hits        20565    20572    +7     
- Misses       2498     2499    +1     

@awaelchli awaelchli merged commit 345450b into master Aug 5, 2024
97 of 98 checks passed
@awaelchli awaelchli deleted the bugfix/model-summary-dtensor-shapes branch August 5, 2024 14:57
ammyk9 pushed a commit to ammyk9/pytorch-lightning that referenced this pull request Aug 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working callback: model summary fabric lightning.fabric.Fabric fun Staff contributions outside working hours - to differentiate from the "community" label pl Generic label for PyTorch Lightning package strategy: fsdp Fully Sharded Data Parallel
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support computing parameter count in ModelSummary for FSDP models
2 participants