[Hardware][AMD][Kernel] mori all2all backend integration#26013
[Hardware][AMD][Kernel] mori all2all backend integration#26013whitememory wants to merge 47 commits into
Conversation
|
👋 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 You ask your reviewers to trigger select CI tests on top of 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 If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. 🚀 |
There was a problem hiding this comment.
Code Review
This pull request integrates the mori all2all backend to enhance performance on ROCm platforms. The changes are extensive, touching communication, model execution layers, and configuration. My review focuses on the correctness and robustness of the new integration. I've identified a few critical issues related to state management, incorrect caching, and potential runtime errors that should be addressed to ensure the stability and correctness of this new feature.
|
At my environment, the pre-commit hanged... I will apply pre-commit result, and respond to any reviews or code-assists tomorrow. |
Note that only low latency mode is available on mori (https://github.com/ROCm/mori) Co-authored-by: Inhyeok Bang <inhyeok.bang@moreh.io> Co-authored-by: Dongmin Ra <dongmin.ra@moreh.io> Co-authored-by: Jimin Park <jimin.park@moreh.io> Co-authored-by: Geonwoo Choi <geonwoo.choi@moreh.io> Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
caused by version difference Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: HakJu Kim <niveusmemoria@gmail.com> Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
accepted suggestion Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: HakJu Kim <niveusmemoria@gmail.com> Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
49a7cfe to
07095ff
Compare
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
this happened because of code conflict(semantically) Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
|
NOTE : we made a progress in cuda graph problem. (capture ok, but replay hang) Test Result is updated. |
|
This pull request has merge conflicts that must be resolved before it can be |
Signed-off-by: ihbang <bih3754@gmail.com>
|
I added "json_config" to EpDispatchCombineConfig and dispatch/combine methods of EpDispatchCombineOp to change its configs easily. |
Signed-off-by: ihbang <bih3754@gmail.com>
Signed-off-by: ihbang <bih3754@gmail.com>
|
@whitememory may you fix the conflict? Thanks. |
Signed-off-by: HakJu Kim <niveusmemoria@gmail.com>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
Signed-off-by: HakJu Kim <hakju.kim@moreh.io>
@HAIAI |
|
@HAIAI |
|
This pull request has merge conflicts that must be resolved before it can be |
|
This pull request has been automatically marked as stale because it has not had any activity within 90 days. It will be automatically closed if no further activity occurs within 30 days. Leave a comment if you feel this pull request should remain open. Thank you! |
|
This pull request has been automatically closed due to inactivity. Please feel free to reopen if you intend to continue working on it. Thank you! |
Purpose
This PR is to integrate mori(https://github.com/ROCm/mori) kernel as all2all backend of vLLM to boost up EP performance at rocm. This is a work by a team from Moreh Inc.
Note that only low latency mode is available on mori. (internal static buffer size)
to activate mori -> install mori using from https://github.com/ROCm/mori and add
export VLLM_ALL2ALL_BACKEND="mori"at server booting scriptTest Plan
server
curl test
benchmark script
Test Result
Introduction
Since mori supports only low-latency, mori backend must use chunked forward (repeated moe) Prefill performance can be worse than a2a backends which do not use chunked forward. (We set VLLM_MOE_DP_CHUNK_SIZE=1024, but test ISL was 2000 per each request)
Thus, performance is measured using ITL metric.
Cuda graph capture seems to have a problem at main 1405f0c, so we gave --enforce-eager to server argument.
Performance result
mori
default(allgather_reducescatter)
naive
Etc tests
4-1. test at 0.11.0rc1
curl test passed at all a2a backends tested on rocm. (naive, allgather_reducescatter, mori)
cuda graph capture passed at all a2a backends tested on rocm. (allgather_reducescatter, mori) - naive backend is supposed to fail
with this fix from mori cuda graph replay is also fine.
4-2. test at main 1405f0c -> main at commit 1405f0c seems to have problem.
curl test DID NOT PASS using all a2a backends tested on rocm. (naive, allgather_reducescatter, mori)
cuda graph capture DID NOT PASS using all a2a backends tested on rocm. (naive, allgather_reducescatter, mori) - naive backend is supposed to fail
4-2-1.
Result of curl test seems like, at main 1405f0c, server responded to “You are a helpful assistant.” not "Who won the world series in 2020?”.
server at 0.11.0rc1 responded to "Who won the world series in 2020?” correctly.
Future works
5-1. Even at 0.11.0rc1, cuda graph replay seems to have a problem. cuda graph capture is done, but it hangs at replay. We will investigate on this.
5-2 integrate mori with DBO
5-3. when mori HT mode releases, apply the mode to enhance prefill performance
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.