[AMD] Support --enable-aiter-allreduce-fusion on AMD GPUs#13747
Merged
HaiShaw merged 8 commits intosgl-project:mainfrom Feb 25, 2026
Merged
[AMD] Support --enable-aiter-allreduce-fusion on AMD GPUs#13747HaiShaw merged 8 commits intosgl-project:mainfrom
HaiShaw merged 8 commits intosgl-project:mainfrom
Conversation
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
b70adf1 to
091c4b9
Compare
091c4b9 to
9de5afa
Compare
870d0d3 to
c7795fe
Compare
c7795fe to
ca18f94
Compare
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Collaborator
Author
|
/rerun-failed-ci |
HaiShaw
approved these changes
Feb 25, 2026
Collaborator
|
Thanks for your contribution! I think the tests didn't add to AMD CI yet, need to add. |
5 tasks
magicYang1573
pushed a commit
to magicYang1573/sglang
that referenced
this pull request
Mar 9, 2026
…t#13747) Co-authored-by: yctseng0211 <yctseng@amd.com>
Wangzheee
pushed a commit
to Wangzheee/sglang
that referenced
this pull request
Mar 21, 2026
…t#13747) Co-authored-by: yctseng0211 <yctseng@amd.com>
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.
Motivation
This PR adds
--enable-aiter-allreduce-fusionfor ROCm so SGLang can use fused tensor-parallel allreduce + residual RMSNorm when runtime eligibility is satisfied.The intent is to improve serving performance while preserving correctness and existing non-ROCm behavior.
Modifications
--enable-aiter-allreduce-fusionserver option and wired it to ROCm fused AR+RMSNorm dispatch.--enable-aiter-allreduce-fusionis disabled.Commands Used
Case A server (without fusion):
SGLANG_AITER_MLA_PERSIST=1 \ AITER_MXFP4_MOE_SF=1 \ SGLANG_INT4_WEIGHT=0 \ SGLANG_MOE_PADDING=1 \ SGLANG_SET_CPU_AFFINITY=1 \ SGLANG_ROCM_FUSED_DECODE_MLA=1 \ SGLANG_USE_ROCM700A=1 \ SGLANG_USE_AITER=1 \ python3 -m sglang.launch_server \ --model-path amd/deepseek-ai/DeepSeek-R1-MXFP4-Preview \ --tp 8 \ --model-loader-extra-config '{"enable_multithread_load": true}' \ --attention-backend aiter \ --mem-fraction-static 0.95 \ --disable-radix-cache --kv-cache-dtype fp8_e4m3Case B server (with fusion):
SGLANG_AITER_MLA_PERSIST=1 \ AITER_MXFP4_MOE_SF=1 \ SGLANG_INT4_WEIGHT=0 \ SGLANG_MOE_PADDING=1 \ SGLANG_SET_CPU_AFFINITY=1 \ SGLANG_ROCM_FUSED_DECODE_MLA=1 \ SGLANG_USE_ROCM700A=1 \ SGLANG_USE_AITER=1 \ python3 -m sglang.launch_server \ --model-path amd/deepseek-ai/DeepSeek-R1-MXFP4-Preview \ --tp 8 \ --model-loader-extra-config '{"enable_multithread_load": true}' \ --attention-backend aiter \ --mem-fraction-static 0.95 \ --disable-radix-cache --kv-cache-dtype fp8_e4m3 \ --enable-aiter-allreduce-fusionAccuracy gate:
Serving sweep:
Accuracy Tests
GSM8K gate results:
Accuracy=0.950,Latency=72.881s,Output throughput=1871.650 tok/sAccuracy=0.951,Latency=61.457s,Output throughput=2238.694 tok/sBenchmarking and Profiling
Workload: random dataset,
input/output = 8192/1024, concurrency{8,16,32,64}.Summary:
con=8/16/32.con=64, fusion is slightly slower in this setup.Checklist