You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ESIMD] Add set_kernel_properties API and use_double_grf property. (#6182)
This patch:
1) Adds esimd::set_kernel_properties API with the single supported property
esimd::kernel_properties::use_double_grf, which lets compiler know that
the calling kernel needs run in "double GRF" mode - more registers per
thread at the expense of fewer H/W threads.
This is temporary API until generic SYCL support for kernel properties
is implemented:
https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/proposed/sycl_ext_oneapi_kernel_properties.asciidoc
2) Provides "lowering" of this API by the new LowerESIMDKernelProps pass, which marks such
kernels with "esimd-double-grf" function attribute, and invoke it from the sycl-post-link as a part
of ESIMD lowering.
3) Implements new "dimension" of device code splitting in sycl-post-link:
functions with and without "esimd-double-grf" attribute go to different
modules. Device binary images resulting from "double-grf" modules are
assigned the "isDoubleGRFEsimdImage" property
4) Updates runtime to add "-doubleGRF" option when JITting SPIRV binaries
with the "isDoubleGRFEsimdImage" property.
5) Fixes sycl-post-link bug in ModuleSplitter.cpp:extractSubModule, where
Function objects in the entry point list were not replaced with new
Function objects in the cloned Module. This lead to corrupted symbol file in
some cases.
6) Misc refactoring:
- factor out call graph traversal from LowerESIMD into ESIMDUtils to use from multiple sources
- fix entry group and module properties handling in the light of multi-dimensional splitting
- improve internal interfaces to pass single ModuleDesc instead of Module + entry points + properties
- limit entry points of a ModuleDesc to the ModuleDesc it was split from
AOT compilation support is TBD.
Signed-off-by: Konstantin S Bobrovsky <[email protected]>
0 commit comments