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

[checkpointio]support asyncio for all models #6152

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

flybird11111
Copy link
Contributor

📌 Checklist before creating the PR

  • I have created an issue for this PR for traceability
  • The title follows the standard format: [doc/gemini/tensor/...]: A concise description
  • I have added relevant tags if possible for us to better distinguish different PRs
  • I have installed pre-commit: pip install pre-commit && pre-commit install

🚨 Issue number

Link this PR to your issue with words like fixed to automatically close the linked issue upon merge

e.g. fixed #1234, closed #1234, resolved #1234

📝 What does this PR do?

Summarize your work here.
if you have any plots/diagrams/screenshots/tables, please attach them here.

💥 Checklist before requesting a review

  • I have linked my PR to an issue (instruction)
  • My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
  • I have performed a self-review of my code
  • I have added thorough tests.
  • I have added docstrings for all the functions/methods I implemented

⭐️ Do you enjoy contributing to Colossal-AI?

  • 🌝 Yes, I do.
  • 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.

@flybird11111 flybird11111 requested a review from a team as a code owner November 26, 2024 07:15
@flybird11111
Copy link
Contributor Author

flybird11111 commented Nov 27, 2024

checkpoint benchmark
model size: 7b gpus numbers: 4; tp=2 pp=2
trace in gpu 0
use asyncio: True
image
image
use asyncio: False
image

@flybird11111 flybird11111 enabled auto-merge (squash) December 10, 2024 09:45
@flybird11111 flybird11111 changed the title [checkpointio]support asyncio for 3d [checkpointio]support asyncio for all models Dec 11, 2024
colossalai/booster/plugin/torch_fsdp_plugin.py Outdated Show resolved Hide resolved
colossalai/checkpoint_io/hybrid_parallel_checkpoint_io.py Outdated Show resolved Hide resolved
colossalai/checkpoint_io/hybrid_parallel_checkpoint_io.py Outdated Show resolved Hide resolved
colossalai/utils/safetensors.py Outdated Show resolved Hide resolved
@flybird11111 flybird11111 force-pushed the 3d-checkpoint-async-2 branch 2 times, most recently from 7b83bb5 to 8b1f649 Compare December 17, 2024 07:38
@@ -216,15 +244,31 @@ def save_sharded_model(

# Then collect the sharded parameters & buffers along tp_group.
# Only devices with tp_rank == 0 are responsible for model saving.
state_dict_shard = HybridParallelCheckpointIO._model_sharder(model, size_per_shard=size_per_shard)
control_saving = self.tp_rank == 0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and sp_rank == 0?

Comment on lines +113 to +114
# exception for fsdp, part[1] isn't param_id
idx = parts[1]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert this now?

plugin = TorchDDPPlugin()
booster = Booster(plugin=plugin)
model = resnet18()
criterion = lambda x: x.mean()
optimizer = SGD((model.parameters()), lr=0.001)
optimizer = SGD((model.parameters()), lr=0.001, momentum=0.5)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep momentum=0 to test corner case

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.

3 participants