vulkan: Adjust coopmat2 tile sizes and selection heuristic #12258
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 change selects different tile sizes (M/N/K) for the coopmat2 shaders, with the goal of better optimizing for smaller prompt lengths. It turns out the largest tile size didn't need to be so large, and there were better tile sizes for smaller prompts like pp128.
I ran a variety of prompt lengths using each of small/medium/large and found that the previous heuristic of trying to use the largest size that evenly divides the prompt length isn't optimal, and it's better to just round up to the next larger tile size.
I think there's still room to improve some prompt lengths by using a mixture of sizes (e.g. see the falloff from pp128 to pp129, which could do better using a mixture of N=128 and N=32 tiles). But I haven't tried that yet.