Repository navigation
[Bugfix][Quantization] Fix Humming FP8 linear for per-tensor/per-channel FP8 weights #60163
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
yewentao256
merged 12 commits into
vllm-project:main
from
Manfredss:fix/fp8-humming-weight-layout
Oct 29, 2026
Merged
Changes from 1 commit
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
da8d30a
[Bugfix][Quantization] Fix Humming FP8 linear for per-tensor/per-chan…
Manfredss 95db3aa
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 671702b
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 374400e
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 970068e
Reject Humming FP8 for online PTPC, like Marlin
Manfredss 606a1e6
Tag the (K, N) weight layout with processed_weight_dims
Manfredss ac4440d
Merge branch 'main' into fix/fp8-humming-weight-layout
mergify[bot] 95d2bdc
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 19a4774
Merge branch 'main' into fix/fp8-humming-weight-layout
yewentao256 df776f2
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 833c5f3
Merge branch 'main' into fix/fp8-humming-weight-layout
vllm-agent d88d84d
Merge branch 'main' into fix/fp8-humming-weight-layout
Manfredss 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
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.
Please take a look at this AI generated 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.
Good catch, it doesn't.
HummingFP8ScaledMMLinearKernel.process_weights_after_loadingcallsprepare_humming_linear_layer_config()without an input schema. Humming then uses its defaultHummingInputSchema()(a_dtype=None), which means 16-bit activations with input quantization disabled. That is W8A16, the same as Marlin FP8. With the layout fix alone (the earlier version of this PR), PTPC would silently run as weight-only FP8 whenever it lands on Humming. That happens in two cases:VLLM_BATCH_INVARIANT=1, where the other FP8 kernels need SM89+ and Marlin opts out;--linear-backend humming.970068e adds Humming to the existing Marlin check in
Fp8PtpcOnlineLinearMethod.create_weights, so PTPC now raises the sameValueError, and the message names the selected kernel. The commit also drops the layout tag that the earlier version set in PTPC, since PTPC no longer reaches Humming.Fp8LinearMethodandfp8_per_tensorstill run on Humming. They already fall back to W8A16 Marlin on GPUs without FP8 support, so Humming matches their existing behavior.A40, nightly
00b6c4c5:VLLM_BATCH_INVARIANT=1 vllm serve Qwen/Qwen3-8B --port 8000 --max-model-len 4096 --gpu-memory-utilization 0.9 --quantization fp8_per_channelmain
layout fix applied to PTPC too, without the new check
this PR
this PR, without BI:
vllm serve Qwen/Qwen3-8B --port 8000 --max-model-len 4096 --gpu-memory-utilization 0.9 --quantization fp8_per_channel --linear-backend hummingmain, same command with
--linear-backend marlin, for comparison