-
-
Notifications
You must be signed in to change notification settings - Fork 7.6k
[FEAT] [ROCm] [V1]: Add AITER biased group topk for DeepSeekV3 #17955
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
[FEAT] [ROCm] [V1]: Add AITER biased group topk for DeepSeekV3 #17955
Conversation
Signed-off-by: tjtanaa <[email protected]>
Signed-off-by: tjtanaa <[email protected]>
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add 🚀 |
Fix the linter (maybe need rebase)? |
Signed-off-by: tjtanaa <[email protected]>
@houseroad It has been fixed. |
topk_group=topk_group, | ||
scoring_func=scoring_func, | ||
e_score_correction_bias=e_score_correction_bias) | ||
if (rocm_aiter_biased_grouped_topk |
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.
Can you add a rocm_aiter_biased_group_topk
wrapper in rocm_aiter_fused_moe
that has the same interface as grouped_topk
? That way we can do something like:
if is_rocm_aiter_moe_enabled():
import torch.ops.vllm.rocm_aiter_biased_grouped_topk as grouped_topk
else:
from vllm.model_executor.layers.fused_moe.fused_moe import grouped_topk
At the top of the file? That would remove all of the dispatching logic here AFAICT. It looks like the only dead argument you would have is scoring_func
which I guess is assumed by the AITER kernel? If so, asserting it's "softmax" inside the wrapper would be good.
Signed-off-by: tjtanaa <[email protected]>
Signed-off-by: tjtanaa <[email protected]>
This pull request has merge conflicts that must be resolved before it can be |
Signed-off-by: tjtanaa <[email protected]>
…project#17955) Signed-off-by: tjtanaa <[email protected]> Co-authored-by: tjtanaa <[email protected]>
…project#17955) Signed-off-by: tjtanaa <[email protected]> Co-authored-by: tjtanaa <[email protected]> Signed-off-by: Gregory Shtrasberg <[email protected]>
…project#17955) Signed-off-by: tjtanaa <[email protected]> Co-authored-by: tjtanaa <[email protected]> Signed-off-by: Chenheli Hua <[email protected]>
…project#17955) Signed-off-by: tjtanaa <[email protected]> Co-authored-by: tjtanaa <[email protected]> Signed-off-by: Yuqi Zhang <[email protected]>
This PR add the use of
biased_group_topk
kernel for DeepSeekV3Performance Comparison Summary
Key Observations:
Accuracy Validation
vllm (pretrained=deepseek-ai/DeepSeek-V3,tensor_parallel_size=8,max_model_len=32768,block_size=1,trust_remote_code=True), gen_kwargs: (None), limit: None, num_fewshot: 5, batch_size: auto
vllm (pretrained=deepseek-ai/DeepSeek-V3,tensor_parallel_size=8,max_model_len=32768,block_size=1,trust_remote_code=True), gen_kwargs: (None), limit: None, num_fewshot: 5, batch_size: auto
V1 custom op of registration unit tests
The unit tests tests for the following criteria