Repository navigation
Conversation
TestTiedOutputHead still expected AutoTP to refuse a row-parallel output head tied to the input embedding. AutoTP now supports that case by replacing the embedding with a HiddenParallelEmbedding that shares the head's sharded weight, so the test failed on master. Check that the tie survives instead, with and without zero.Init. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Jin, Youzhi <youzhi.jin@intel.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
delock
self-requested a review
October 19, 2026 01:09
Collaborator
|
Hi @jinyouzhi , did this test get skipped in nightly? I didn't see nightly failure report. Can you take a look whether this test is covered? Thanks! |
The nightly GPU run has 2 devices, so a 4-rank test is skipped there. TP 2 x EP 2 folding still applies with world size 2. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Jin, Youzhi <youzhi.jin@intel.com>
The check only builds the engine, so it does not need an accelerator. Drop the CPU skip and mark it sequential: the CPU multi-rank nightly selects tests under unit/v1 only through the sequential phase. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Jin, Youzhi <youzhi.jin@intel.com>
The CPU multi-rank nightly admits world_size <= 4, so the test keeps its original rank count there. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Jin, Youzhi <youzhi.jin@intel.com>
delock
approved these changes
Oct 20, 2026
delock
enabled auto-merge
October 20, 2026 08:42
This branch has not been deployed
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
Fixes a stale test expectation.
TestTiedOutputHead::test_row_parallel_tied_head_is_refused[False/True]intests/unit/v1/moe/test_autoep_autotp_sharded_attention.pyfails on master:The test (added in #8670) expects AutoTP to refuse a row-parallel output head whose weight is tied to the input embedding. Since 3c6a5ca ("[AutoTP] Support tied embeddings for row-parallel…"), AutoTP supports this case: it replaces the embedding with a
HiddenParallelEmbeddingthat shares the head's sharded weight. The two changes landed a day apart, so the expectation was already stale when #8670 merged.Change (test only, no runtime code modified):
test_row_parallel_tied_head_keeps_the_tie.zero.Init, check afterdeepspeed.initializethat the embedding is aHiddenParallelEmbeddingandlm_head.weight is embed_tokens.weight.cpu-torch-multi-latest). Before, it skipped on CPU and needed 4 GPUs, so no nightly ran it: the GPU nightly (ci/torch_latest.py) has exactly 2 GPUs. The check only builds the engine, so it needs no accelerator: drop the CPU skip and mark itsequential, because that nightly selects tests underunit/v1only through its sequential phase. It keeps 4 ranks, which that nightly admits (LOCAL_SIZE=4).The original concern of the test still holds: under
zero.InitAutoTP gathers the partitioned head weight into a new parameter, and if the embedding kept the old one the two would train as separate copies. The identity check catches that. Numerical training parity of a tied row-parallel head is already covered byTestTiedRowParallelOutputHeadTrainingintests/unit/v1/autotp/test_autotp_training.py.Related work
No open PR fixes this test. #8829 and #8848 both list these two failures as pre-existing and leave them unchanged. I searched open PRs touching
TestTiedOutputHeadand tied/vocab-parallel output heads.Tests
cc7b5125dTestTiedOutputHead[zero_init=False]AssertionErrorabove)TestTiedOutputHead[zero_init=True]AssertionErrorabove)pre-commit run --fileson the changed file passes.Hardware and software:
Compatibility matrix
Test-only change; no numerics, performance or memory impact.
zero.Init(as in the test)sequentialtests)AI assistance
This PR was developed with AI assistance (GitHub Copilot CLI). I reviewed every changed line and ran the tests above.
cc @pengdurice @0z5a @delock