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
[SYCL] Add support for JIT-ing in AMD and NVIDIA backends (#14280)
This patch provides the following:
* support for JIT compilation of Nvidia and AMD kernels
This is guarded by `SYCL_JIT_KERNELS` environment variable. Target CPU
and features can be provided through environment variables
(`SYCL_JIT_TARGET_CPU` and `SYCL_JIT_TARGET_FEATURES` respectively),
otherwise default, per-backend, values will be chosen.
* caching of JIT-compiled kernels
The runtime maintains a map of available JIT-ed kernels, accessible
through a key, which is constructed from kernel's name and values of
specialization constant (if provided).
* materialization of specialization
Materialization is done through a `SYCLSpecConstMaterializer` pass that
receives the values of all specialization constants used by a kernel
(from `SYCLSpecConstDataInserter`) and then walks all the uses of
implicit kernel argument (`_arg__specialization_constants_buffer`),
representing emulated specialization constants, with concrete values,
turning them to de-facto compile time constants.
This PR extends the work done for kernel fusion and in a similar fashion
it requires embedding of IR (`-fsycl-embed-ir`) during the initial
compilation.
0 commit comments