Skip to content

CUDA: fix MMQ nwarps for AMD with warp_size==32 #15014

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

Merged
merged 1 commit into from
Aug 1, 2025

Conversation

JohannesGaessler
Copy link
Collaborator

It seems that in #14624 the number of warps for AMD was accidentally changed from 8 to 4 for all warp sizes. As a consequence for AMD GPUs with a warp size of 32 the performance has gotten worse since the kernel is only using half the threads. This PR makes it so that a constant number of 256 threads is used and that those threads are either spread across 4 or 8 warps depending on warp size.

@github-actions github-actions bot added Nvidia GPU Issues specific to Nvidia GPUs ggml changes relating to the ggml tensor library for machine learning labels Aug 1, 2025
Copy link
Collaborator

@IMbackK IMbackK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Static analysis looks good and i can also confirm this resolves the regression on gfx1030

pr

  Device 0: AMD Radeon RX 6800 XT, gfx1030 (0x1030), VMM: no, Wave Size: 32
| model                          |       size |     params | backend    | ngl |            test |                  t/s |
| ------------------------------ | ---------: | ---------: | ---------- | --: | --------------: | -------------------: |
| llama 7B Q4_0                  |   3.56 GiB |     6.74 B | ROCm       |  99 |           pp512 |       1666.06 ± 2.48 |

master

  Device 0: AMD Radeon RX 6800 XT, gfx1030 (0x1030), VMM: no, Wave Size: 32
| model                          |       size |     params | backend    | ngl |            test |                  t/s |
| ------------------------------ | ---------: | ---------: | ---------- | --: | --------------: | -------------------: |
| llama 7B Q4_0                  |   3.56 GiB |     6.74 B | ROCm       |  99 |           pp512 |       1363.94 ± 1.09 |
  8133/8133 tests passed
  Backend ROCm0: OK
Backend 2/2: CPU

@IMbackK IMbackK merged commit 9c35706 into ggml-org:master Aug 1, 2025
42 of 43 checks passed
BradHutchings added a commit to BradHutchings/Mmojo-Server that referenced this pull request Aug 1, 2025
CUDA: fix MMQ nwarps for AMD with warp_size==32 (ggml-org#15014)
Nexesenex added a commit to Nexesenex/croco.cpp that referenced this pull request Aug 7, 2025
Nexesenex added a commit to Nexesenex/croco.cpp that referenced this pull request Aug 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ggml changes relating to the ggml tensor library for machine learning Nvidia GPU Issues specific to Nvidia GPUs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants