Repository navigation
feat(training): select recorded CUDA MPS daemon - #2095
Merged
Merged
Conversation
TATP-233
force-pushed
the
feat/issue-2093-trainer-mPS-daemon
branch
2 times, most recently
from
October 8, 2026 15:05
b79ef3a to
ab815b5
Compare
TATP-233
force-pushed
the
feat/issue-2093-trainer-mPS-daemon
branch
from
October 8, 2026 15:24
ab815b5 to
8a05802
Compare
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
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.
Summary
After
uv run uni-cumps start, single-GPU MJWarp SAC/FlashSAC training withtraining.cuda_process_sharing=mpscan select the sole live UniLab-recorded daemon without importing its environment into the shell. An explicitCUDA_MPS_PIPE_DIRECTORYtakes precedence. Selection matches the physical GPU UUID and fails before environment/learner/collector construction when no live matching daemon exists or the choice is ambiguous.Startup also waits for a successful control query before recording the daemon. Both the readiness check and the doctor/training probe send
get_server_list\nthrough stdin tonvidia-cuda-mps-control. Passing the command as an argument left the client waiting for stdin on CUDA 13, causing a timeout even though the daemon had accepted the connection. A successful empty server list is accepted because MPS servers start lazily. Failed readiness triggers cleanup of the newly launched control process and reports its log tail.The trainer only selects an existing daemon; lifecycle management remains CLI-owned.
eval "$(uv run uni-cumps env)"remains available for explicit shell integration.Linked Work
unilab cuda mpsmanagement CLI (initial single-GPU implementation) #2079 and fix(cli): default uni-cumps daemon path exceeds Linux MPS socket limit #2091.main.Validation
Final local head:
b41fdac5.make test-allpassed on the final local head before updating this PR.Commands run against this tree:
uv run pytest tests/training/test_cuda_mps_cli.py tests/training/test_cuda_process_sharing.py -q git diff --check make check make test make test-all uv run uni-cumps start uv run uni-cumps doctor uv run uni-cumps stop uv run uni-cumps start uv run uni-cumps env uv run uni-cumps doctormake checkpassed.make testand the fullmake test-allgate passed with 1,853 passed, 42 skipped, and 488 deselected. Coverage: 70%. Benchmark entrypoint smoke: module mode 34/34 and script mode 35/35.On Linux / NVIDIA RTX 4090 / CUDA MPS control version 13000, an isolated real-daemon reproduction showed the argument-based query timing out and the stdin query returning immediately. With the fix, start, stop, and restart succeeded; doctor reported
valid=True. The managed daemon was left running. Full training was not rerun for this correction.Remote checks for
b41fdac52d2b50d1c46db3231cbd1fd8785695b2: CI and Docs both passed. Ruff lint/format, mypy, pyright, benchmark smoke, coverage tests, and Sphinx build succeeded. Documentation deployment was skipped as expected for a PR.Impact and Limitations
Checklist