1111#include " sycl/handler.hpp"
1212#include < detail/cg.hpp>
1313#include < detail/kernel_bundle_impl.hpp>
14+ #include < detail/kernel_data.hpp>
1415#include < memory>
1516#include < sycl/ext/oneapi/experimental/enqueue_types.hpp>
1617
@@ -61,8 +62,7 @@ class handler_impl {
6162 }
6263
6364 KernelNameStrRefT getKernelName () const {
64- assert (MDeviceKernelInfoPtr);
65- return static_cast <KernelNameStrRefT>(MDeviceKernelInfoPtr->Name );
65+ return MKernelData.getKernelName ();
6666 }
6767
6868 // / Registers mutually exclusive submission states.
@@ -108,12 +108,6 @@ class handler_impl {
108108 // If the pipe operation is read or write, 1 for read 0 for write.
109109 bool HostPipeRead = true ;
110110
111- ur_kernel_cache_config_t MKernelCacheConfig = UR_KERNEL_CACHE_CONFIG_DEFAULT;
112-
113- bool MKernelIsCooperative = false ;
114- bool MKernelUsesClusterLaunch = false ;
115- uint32_t MKernelWorkGroupMemorySize = 0 ;
116-
117111 // Extra information for bindless image copy
118112 ur_image_desc_t MSrcImageDesc = {};
119113 ur_image_desc_t MDstImageDesc = {};
@@ -138,29 +132,17 @@ class handler_impl {
138132 sycl::ext::oneapi::experimental::node_type MUserFacingNodeType =
139133 sycl::ext::oneapi::experimental::node_type::empty;
140134
141- // Storage for any SYCL Graph dynamic parameters which have been flagged for
142- // registration in the CG, along with the argument index for the parameter.
143- std::vector<std::pair<
144- ext::oneapi::experimental::detail::dynamic_parameter_impl *, int >>
145- MDynamicParameters;
146-
147135 // / The storage for the arguments passed.
148136 // / We need to store a copy of values that are passed explicitly through
149137 // / set_arg, require and so on, because we need them to be alive after
150138 // / we exit the method they are passed in.
151139 detail::CG::StorageInitHelper CGData;
152140
153- // / The list of arguments for the kernel.
154- std::vector<detail::ArgDesc> MArgs;
155-
156141 // / The list of associated accessors with this handler.
157142 // / These accessors were created with this handler as argument or
158143 // / have become required for this handler via require method.
159144 std::vector<detail::ArgDesc> MAssociatedAccesors;
160145
161- // / Struct that encodes global size, local size, ...
162- detail::NDRDescT MNDRDesc;
163-
164146 // / Type of the command group, e.g. kernel, fill. Can also encode version.
165147 // / Use getType and setType methods to access this variable unless
166148 // / manipulations with version are required
@@ -241,16 +223,7 @@ class handler_impl {
241223 // Allocation ptr to be freed asynchronously.
242224 void *MFreePtr = nullptr ;
243225
244- // Store information about the kernel arguments.
245- void *MKernelFuncPtr = nullptr ;
246- int MKernelNumArgs = 0 ;
247- detail::kernel_param_desc_t (*MKernelParamDescGetter)(int ) = nullptr ;
248- bool MKernelIsESIMD = false ;
249- bool MKernelHasSpecialCaptures = true ;
250-
251- // A pointer to device kernel information. Cached on the application side in
252- // headers or retrieved from program manager.
253- DeviceKernelInfo *MDeviceKernelInfoPtr = nullptr ;
226+ KernelData MKernelData;
254227};
255228
256229} // namespace detail
0 commit comments