[Perf] Add fused qk rotary embedding kernel for Qwen2.5-VL ViT #715
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.
Purpose
This PR targets the Qwen2.5-VL models, unifying the rotary embedding of query and key in ViT into one kernel adopted from flash_attn. The kernel speeds up Qwen2 ViT's rotary by 1.9x compared with the calculating q and k embeddings separately.
Kernel benchmark
Test Plan
Qwen2-VL-72B-Instruct correctness validation on MathVista
Server command:
Test Result
Eval
Separated qk (before):
Fused qk (after):
Benchmark
Essential Elements of an Effective PR Description Checklist
supported_models.md
andexamples
for a new model.