-
Notifications
You must be signed in to change notification settings - Fork 756
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
[DAE][SYCL] Emit MD instead of updating integration header #2258
Conversation
@kbobrovs, do you know why kmeans test fails here? |
@bader - no, I don't. Is this reproduced with this PR only? @NikitaRudenkoIntel - do you have any ideas?
|
Will take a look |
@DenisBakhvalov, could you apply suggestion from this comment: #2226 (comment)? I think this patch might conflict with #2207. With this patch we apply DAE unconditionally, but there are missing parts of the implementation to make it work (e.g. integration with the runtime). |
For some reason this patch breaks genx.kernels metadata. The first argument of KernelMD should be a reference to kernel. This is how it looks like without this patch:
And this is with the patch:
The references to kernels are missing, which eventually causes the failure. |
Another option is to add a command line option to control this optimization with "off" value by default. |
We cannot run DAE in ESIMD cntext since the pointers to SPIR kernel functions are saved in !genx.kernels metadata. Because of that I removed DAE pass from the standard pipeline and put it in the place that is specific for SYCL passes and guarded it under a new temporary option: '-fenable-sycl-dae'. This option is only used until other parts of the solution are not in place.
df63c03
to
4c2fbd6
Compare
@NikitaRudenkoIntel, thanks for the analysis. It turns out that we cannot run DAE in ESIMD context since the pointers to SPIR kernel functions are saved in @bader, I removed the pass from the standard pipeline and put it in the place that is specific for SYCL passes and guarded it under a new temporary option: |
Do I understand it correctly, that fixed version doesn't apply DAE in ESIMD mode?
Thanks. I'll open an issue to enable this optimization for non-SPIR kernels when full implementation is in place. |
Yes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FE changes LGTM. I did not check llvm/ changes
…fter Headers change (#2258) * Bump SPIRV-Headers to 1c6bb2743599e6eb6f37b2969acc0aef812e32e3 * replace internal SPV_INTEL_long_composites ext with the published SPV_INTEL_long_composites * don't rename extension for now This closes: KhronosGroup/SPIRV-LLVM-Translator#2261 Co-authored-by: Wlodarczyk, Bertrand <bertrand.wlodarczyk@intel.com> Original commit: KhronosGroup/SPIRV-LLVM-Translator@0166a0f
No description provided.