UPSTREAM PR #18537: mmq.cu: tune mmq/wmma switching for RDNA#783
Open
UPSTREAM PR #18537: mmq.cu: tune mmq/wmma switching for RDNA#783
Conversation
|
Explore the complete analysis inside the Version Insights Perfect! I've retrieved the summary report for your project. Here are the key findings: Performance Summary ReportProject Details:
Key Findings:✅ No Significant Performance Regressions Detected The analysis shows that no modified functions were found with performance changes greater than 2%. This indicates:
Conclusion:This pull request has minimal to no performance impact on the llama.cpp codebase. The changes maintain performance stability, which is a positive result indicating that your code modifications don't introduce any significant performance regressions. Would you like more detailed information about specific functions or any other aspects of this performance comparison? |
118039a to
cd122e2
Compare
4f98d83 to
3210e33
Compare
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.
Mirrored from ggml-org/llama.cpp#18537
Continuing from #18442 I applied similar benchmarking as #14949 and #18202 to try and minimize bad cases on RDNA while keeping the logic simple.
The TL;DR is, over an average of all models on https://huggingface.co/Beinsezii/mmq_test over a variety of µbatch sizes I have
Where 100% is a theoretical maximum if it were to optimally choose mmq or rocblas in each case.
When excluding the 1B model which is noisy, there's exactly two outliers
Both of which are on bs=128, and both of which quickly flip < 128. If you wanted to fudge this case, you could probably do something like
but that might be considered splitting hairs.
100% of my testing was on GFX11, ROCm 7.1.1, compile flags
and forced mmq/cublas as appropriate for measuring.
I do not own any RDNA3.5 or RDNA4 hardware. I'm assuming RDNA3.5 will behave pretty much the same, but since RDNA4 has some implementation differences in MMQ, it may be worth for someone to re-measure in the future.
The raw data for every combination of model / batch / backend can be viewed at measurements.csv which was generated by the scripts on huggingface.
Different from the other PRs, I've made the baseline MMQ as it seems to better handle most cases.
In general, I put little weight on the 1B results as it's extremely noisy, even with hip graphs. For cases that were a wash between µbatch sizes like Q4_K and Q5_K, I simply preferred MMQ.