sycl: Update gate logic for Alchemist GPUs regarding OneDNN features. - #26635
Conversation
arthw
left a comment
There was a problem hiding this comment.
It's good idea!
Could you provide the test script or cmd for the abnormal output with head=64?
I will test this solution on other GPUs.
Thank you!
Accepted recommendations to add bmg_g31 arch. Co-authored-by: Neo Zhang <zhang.jianyu@outlook.com>
The program to run it was from #25222: Running with OneDNN debugging enabled to show complete shapes, it gives this output: You can see that it's only the 2/12 shapes with head sizes of 64 that fail. This could likely be rectified on Intel's end as last I saw it's a driver issue. |
|
@HumerousGorgon Thank you! |
Forgot to add back in the arch var after I reworked the gate logic.. whoops! |
|
@HumerousGorgon Thank you! |
Fixed! |
|
I re-triger CI to check it. Thank you! |
|
Is there anything else that needs to be done here prior to merge? |
Overview
There have been a few recent OneDNN specific features that have aimed to increase the performance of prompt processing on Intel GPUs. Unfortunately, in pull #25222 it was found that SPDA routes threw incorrect results on Alchemist GPUs. As a result, Alchemist GPUs were gated from the SPDA paths.
The PR also left Alchemist users a testing script to verify whether the SPDA paths were correct or not by comparing it to a known good CPU result. When running this, I found that it was only the SPDA shapes with a head size of d=64 that failed.
Instead of gating all SPDA routes, I rewrote the gate to block Alchemist users from SPDA shapes with a head size of d=64, instead having them fall back to the regular SYCL FA routes. This allowed all other routes to run as OneDNN SPDAs.
Additional information
Prompt processing for models with head sizes !=64 is greatly increased. Qwen3.6-27B sees speeds of around 590-680t/s PP.
Prompt processing for models with head sizes = 64 is unchanged, but very performant given that most models with smaller head sizes are small.
The OneDNN issue with regards to head sizes of 64 is tracked in their repo and is reportedly in "triage" according to Intel. When the script shows that the failed shapes now pass, this gate can be completely removed.
Requirements