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