generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 521
Consolidate smdistributed and pytorchddp launcher #4081
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
Merged
Merged
Conversation
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
junpuf
reviewed
Jul 23, 2024
junpuf
approved these changes
Jul 23, 2024
Lokiiiiii
approved these changes
Jul 23, 2024
ruhanprasad
reviewed
Jul 23, 2024
Contributor
ruhanprasad
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved, just had one minor comment
ruhanprasad
approved these changes
Jul 23, 2024
evakravi
pushed a commit
to evakravi/deep-learning-containers
that referenced
this pull request
Sep 5, 2024
* Consolidate smdistributed and pytorchddp launcher * rename pyddp test file * fix dist_method * black formatting * fix buildspec * build pt 2.3 * use torch_distributed built-in rank * disable build * separate pytorchddp and torch_distributed tests * formatting * retest efa * test pytorchddp * test 2.2 * add builtage override * test 2.1 * test 1.13 * disable build * reenable build * disable build tag override * temp override file size check * revert toml
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GitHub Issue #, if available:
Note:
If merging this PR should also close the associated Issue, please also add that Issue # to the Linked Issues section on the right.
All PR's are checked weekly for staleness. This PR will be closed if not updated in 30 days.
Description
Given SageMaker PythonSDK launcher consolidation in aws/sagemaker-python-sdk#4698,
pytorchddpandsmdistributedlauncher are now behaviorally the same. Moving forward, DLC will tests the following circumstances for each launcher.torch_distributedtest as the base case for torch distributed training. This is to ensuretorchrunis always working.pytorchddplauncher along with a training script that uses nccl backend. SMDDP tests with smdistributed launcher will be skipped. This is to ensure when SMDDP is not installed, running withmpirunrun still works out of the box.smdistributedlauncher with a different training script that uses smddp backend. pytorchddp tests will be skipped. This is to ensure that once SMDDP binary is installed,mpirunremain functional.Tests run
NOTE: By default, docker builds are disabled. In order to build your container, please update dlc_developer_config.toml and specify the framework to build in "build_frameworks"
Confused on how to run tests? Try using the helper utility...
Assuming your remote is called
origin(you can find out more withgit remote -v)...python src/prepare_dlc_dev_environment.py -b </path/to/buildspec.yml> -cp originpython src/prepare_dlc_dev_environment.py -b </path/to/buildspec.yml> -t sanity_tests -cp originpython src/prepare_dlc_dev_environment.py -rcp originNOTE: If you are creating a PR for a new framework version, please ensure success of the standard, rc, and efa sagemaker remote tests by updating the dlc_developer_config.toml file:
Expand
sagemaker_remote_tests = truesagemaker_efa_tests = truesagemaker_rc_tests = trueAdditionally, please run the sagemaker local tests in at least one revision:
sagemaker_local_tests = trueFormatting
black -l 100on my code (formatting tool: https://black.readthedocs.io/en/stable/getting_started.html)DLC image/dockerfile
Builds to Execute
Expand
Fill out the template and click the checkbox of the builds you'd like to execute
Note: Replace with <X.Y> with the major.minor framework version (i.e. 2.2) you would like to start.
build_pytorch_training_<X.Y>_sm
build_pytorch_training_<X.Y>_ec2
build_pytorch_inference_<X.Y>_sm
build_pytorch_inference_<X.Y>_ec2
build_pytorch_inference_<X.Y>_graviton
build_tensorflow_training_<X.Y>_sm
build_tensorflow_training_<X.Y>_ec2
build_tensorflow_inference_<X.Y>_sm
build_tensorflow_inference_<X.Y>_ec2
build_tensorflow_inference_<X.Y>_graviton
Additional context
PR Checklist
Expand
NEURON/GRAVITON Testing Checklist
dlc_developer_config.tomlin my PR branch by settingneuron_mode = trueorgraviton_mode = trueBenchmark Testing Checklist
dlc_developer_config.tomlin my PR branch by settingec2_benchmark_tests = trueorsagemaker_benchmark_tests = truePytest Marker Checklist
Expand
@pytest.mark.model("<model-type>")to the new tests which I have added, to specify the Deep Learning model that is used in the test (use"N/A"if the test doesn't use a model)@pytest.mark.integration("<feature-being-tested>")to the new tests which I have added, to specify the feature that will be tested@pytest.mark.multinode(<integer-num-nodes>)to the new tests which I have added, to specify the number of nodes used on a multi-node test@pytest.mark.processor(<"cpu"/"gpu"/"eia"/"neuron">)to the new tests which I have added, if a test is specifically applicable to only one processor typeBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.