-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
Marlin 24 prefill performance improvement (about 25% better on average) #4983
Merged
mgoin
merged 9 commits into
vllm-project:main
from
neuralmagic:marlin_24_improve_prefill
May 23, 2024
Merged
Marlin 24 prefill performance improvement (about 25% better on average) #4983
mgoin
merged 9 commits into
vllm-project:main
from
neuralmagic:marlin_24_improve_prefill
May 23, 2024
Conversation
This file contains 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
alexm-redhat
changed the title
gptq_marlin_24 prefill performance improvement (about 25% better on average)
Marlin 24 prefill performance improvement (about 25% better on average)
May 22, 2024
alexm-redhat
force-pushed
the
marlin_24_improve_prefill
branch
from
May 22, 2024 15:04
21454f5
to
13f0f79
Compare
mgoin
approved these changes
May 22, 2024
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.
Really clean work Alex, I appreciate this! The optimization makes sense and it's only a few more kernels to compile
pcmoritz
approved these changes
May 22, 2024
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.
Nice, looks great!
dtrifiro
pushed a commit
to opendatahub-io/vllm
that referenced
this pull request
May 31, 2024
robertgshaw2-redhat
pushed a commit
to neuralmagic/nm-vllm
that referenced
this pull request
Jun 8, 2024
joerunde
pushed a commit
to joerunde/vllm
that referenced
this pull request
Jun 17, 2024
robertgshaw2-redhat
pushed a commit
to neuralmagic/nm-vllm
that referenced
this pull request
Jul 14, 2024
Temirulan
pushed a commit
to Temirulan/vllm-whisper
that referenced
this pull request
Sep 6, 2024
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.
This PR introduces performance improvement to marlin_24's prefill (large batch) performance. The key fix is to ensure that the matmul instructions happen concurrently with the async global => shared memory load phase. Before that, the code was first waiting for the async stage to finish and only then ran the matmul, which reduces overlap of memory/compute and hurts compute-bound case/prefill.
Another fix is to introduce the 32/512 (k/n thread_block) configuration for high batch counts, since it reduces the amount of times we need to load matrix A (due to less tiling over N), and loading A is more expensive when we have larger batch.