-
Notifications
You must be signed in to change notification settings - Fork 540
perf: Reduce MXFP8 refit weight-transfer overheads #3294
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
Open
seonjinn
wants to merge
59
commits into
NVIDIA-NeMo:main
Choose a base branch
from
seonjinn:sna/pr-mxfp8-refit-optimization
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
59 commits
Select commit
Hold shift + click to select a range
b88aa2c
perf(vllm): optimize quantized refit paths
seonjinn 438e20d
Merge branch 'main' into sna/pr-mxfp8-refit-optimization
seonjinn 96ba299
Merge branch 'main' into sna/pr-mxfp8-refit-optimization
seonjinn 0fb59b6
fix(trtllm): align refit metadata interface
seonjinn c4a5e14
test(vllm): include MXFP8 refit tests in L0
seonjinn 5c53bd4
fix(refit): complete prequant metadata handshake
seonjinn 98fc197
test(refit): cover MXFP8 optimization paths
seonjinn b237fd2
test(refit): fix vLLM test import order
seonjinn d1f9fc9
Merge upstream/main into sna/pr-mxfp8-refit-optimization
seonjinn ab030c3
test(fp8): cover MXFP8 MoE padding path
seonjinn 2c147ac
Merge upstream/main into sna/pr-mxfp8-refit-optimization
seonjinn 150e25f
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn f391a4a
fix(refit): reconcile MXFP8 optimizations with NCCL reshard
seonjinn 85a6fea
fix(refit): validate checkpoint prequant backend
seonjinn 716bb74
fix(refit): reject MXFP8 with NCCL reshard
seonjinn f638fa6
fix(refit): validate NCCL reshard storage precision
seonjinn 2fde3b0
ci: associate Codecov uploads with pull requests
seonjinn 2b0b262
Merge remote-tracking branch 'origin/main' into sna/pr-mxfp8-refit-op…
seonjinn 6fe0632
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn 00fa128
fix: address MXFP8 refit review feedback
seonjinn de65f06
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn 2339686
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn 5880499
fix(vllm): preserve MXFP8 refit on vLLM 0.25
seonjinn 123cc07
style(vllm): sort MXFP8 backend import
seonjinn ef3fa08
fix(vllm): allow partial configs in quant validation
seonjinn 7989113
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn c4a7b06
feat(recipe): add async Qwen3 30B MXFP8 rollout
seonjinn 69f7995
feat(recipe): add async Qwen3 235B MXFP8 rollout
seonjinn d53bfdf
ci: allowlist async recipe result path
seonjinn 2405bf5
fix(vllm): initialize async driver FP8 config
seonjinn 0a11e94
fix(vllm): propagate FP8 config to refit workers
seonjinn 81ce860
fix(recipe): keep Qwen router gate in BF16
seonjinn 9e43378
fix(recipe): exclude Qwen MoE routers from MXFP8
seonjinn 6e582b8
fix(vllm): patch FP8 in RayExecutorV2 workers
seonjinn 93394c2
fix(vllm): serialize FP8 worker pre-init hook
seonjinn f3c9196
test(vllm): share RayExecutorV2 patch recorder
seonjinn e3384d2
feat(vllm): configure refit runtime optimizations
seonjinn c4d453e
fix(refit): propagate runtime configuration
seonjinn d43372e
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn 2b80a85
fix(refit): cover standalone algorithm paths
seonjinn 0b6b5cc
fix(vllm): scope refit optimization config
seonjinn cd7732c
fix(refit): allow matching fp8 reshard storage
seonjinn 80cd8fe
Merge remote-tracking branch 'upstream/main' into sna/pr-mxfp8-refit-…
seonjinn 7705d22
fix(refit): validate MXFP8 prequant wire format
seonjinn 88721ce
Merge remote-tracking branch 'origin/main' into review/pr3294-latest-…
seonjinn 94a312e
fix: accept serialized_fp8_config in real-quant prepare_refit_info
seonjinn 759b44c
fix: gate slim-refit optimizer offload on offload_optimizer_for_refit
seonjinn 3736d16
fix: validate MXFP8 scale presence against full refit manifest
seonjinn 1d6a10a
Merge branch 'main' into pr-3294-fixes
seonjinn 8dc4c36
fix(dynamo): align prepare_refit_info override with interface
seonjinn db442ef
Merge branch 'main' into sna/pr-mxfp8-refit-optimization
seonjinn 4427f4c
Merge main into sna/pr-mxfp8-refit-optimization
seonjinn c162cfd
fix: resolve CI unit-test failures after main merge
seonjinn 382fa8b
Merge remote branch update, keeping local merge resolution and CI fixes
seonjinn 125f178
Merge main into sna/pr-mxfp8-refit-optimization
seonjinn e28239c
fix(refit): derive prequantize metadata without re-exporting weights
seonjinn 232da17
Fix pyrefly no-matching-overload false positive on masked_fill
seonjinn 6b2ab6e
test: update refit cleanup fixture after main merge
seonjinn 06b6fbb
refactor(refit): limit optimized recipes to sync RL
seonjinn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
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.
[Critical] Signature drift: first refit raises
TypeErrorfor every ModelOpt-backed vLLM engine.The base class gained a second positional parameter (
vllm_backend.py:460-464,prepare_refit_info(self, state_dict_info, serialized_fp8_config)), and both drivers now RPC two args unconditionally:vllm_worker.py:1157-1160:collective_rpc("prepare_refit_info", args=(state_dict_info, fp8.serialize_fp8_config()))vllm_worker_async.py:1412-1415: sameThis override still declares
prepare_refit_info(self, state_dict_info), so the RPC fails withTypeError: takes 2 positional arguments but 3 were givenbefore the body runs - the_is_real_quant_model()==Falsefallback is unreachable, so fake-quant configs break too. No test exercises the 2-arg call against this extension.Fix: accept and forward the new parameter (
def prepare_refit_info(self, state_dict_info, serialized_fp8_config=None)and pass it through tosuper()).