14 #include <sycl/feature_test.hpp>
15 #if SYCL_EXT_JIT_ENABLE
16 #include <KernelFusion.h>
19 #include <unordered_map>
22 enum class BinaryFormat : uint32_t;
24 struct SYCLKernelInfo;
25 struct SYCLKernelAttribute;
32 inline namespace _V1 {
38 std::unique_ptr<detail::CG>
44 const std::string &KernelName,
45 const std::vector<unsigned char> &SpecConstBlob);
63 createPIDeviceBinary(const ::jit_compiler::SYCLKernelInfo &FusedKernelInfo,
64 ::jit_compiler::BinaryFormat Format);
69 std::vector<uint8_t> encodeReqdWorkGroupSize(
70 const ::jit_compiler::SYCLKernelAttribute &Attr)
const;
76 std::vector<DeviceBinariesCollection> JITDeviceBinaries;
78 #if SYCL_EXT_JIT_ENABLE
80 using FuseKernelsFuncT = decltype(::jit_compiler::fuseKernels) *;
81 using MaterializeSpecConstFuncT =
82 decltype(::jit_compiler::materializeSpecConstants) *;
83 using ResetConfigFuncT = decltype(::jit_compiler::resetJITConfiguration) *;
84 using AddToConfigFuncT = decltype(::jit_compiler::addToJITConfiguration) *;
85 FuseKernelsFuncT FuseKernelsHandle =
nullptr;
86 MaterializeSpecConstFuncT MaterializeSpecConstHandle =
nullptr;
87 ResetConfigFuncT ResetConfigHandle =
nullptr;
88 AddToConfigFuncT AddToConfigHandle =
nullptr;
std::unique_ptr< detail::CG > fuseKernels(QueueImplPtr Queue, std::vector< ExecCGCommand * > &InputKernels, const property_list &)
static jit_compiler & get_instance()
ur_kernel_handle_t materializeSpecConstants(QueueImplPtr Queue, const RTDeviceBinaryImage *BinImage, const std::string &KernelName, const std::vector< unsigned char > &SpecConstBlob)
Objects of the property_list class are containers for the SYCL properties.
DynArray< uint8_t > ArgUsageMask
std::shared_ptr< sycl::detail::queue_impl > QueueImplPtr
annotated_arg & operator=(annotated_arg &)=default
This struct is a record of all the device code that may be offloaded.