11
11
#include " sycl/handler.hpp"
12
12
#include < detail/cg.hpp>
13
13
#include < detail/kernel_bundle_impl.hpp>
14
+ #include < detail/kernel_data.hpp>
14
15
#include < memory>
15
16
#include < sycl/ext/oneapi/experimental/enqueue_types.hpp>
16
17
@@ -61,8 +62,7 @@ class handler_impl {
61
62
}
62
63
63
64
KernelNameStrRefT getKernelName () const {
64
- assert (MDeviceKernelInfoPtr);
65
- return static_cast <KernelNameStrRefT>(MDeviceKernelInfoPtr->Name );
65
+ return MKernelData.getKernelName ();
66
66
}
67
67
68
68
// / Registers mutually exclusive submission states.
@@ -108,12 +108,6 @@ class handler_impl {
108
108
// If the pipe operation is read or write, 1 for read 0 for write.
109
109
bool HostPipeRead = true ;
110
110
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
-
117
111
// Extra information for bindless image copy
118
112
ur_image_desc_t MSrcImageDesc = {};
119
113
ur_image_desc_t MDstImageDesc = {};
@@ -138,29 +132,17 @@ class handler_impl {
138
132
sycl::ext::oneapi::experimental::node_type MUserFacingNodeType =
139
133
sycl::ext::oneapi::experimental::node_type::empty;
140
134
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
-
147
135
// / The storage for the arguments passed.
148
136
// / We need to store a copy of values that are passed explicitly through
149
137
// / set_arg, require and so on, because we need them to be alive after
150
138
// / we exit the method they are passed in.
151
139
detail::CG::StorageInitHelper CGData;
152
140
153
- // / The list of arguments for the kernel.
154
- std::vector<detail::ArgDesc> MArgs;
155
-
156
141
// / The list of associated accessors with this handler.
157
142
// / These accessors were created with this handler as argument or
158
143
// / have become required for this handler via require method.
159
144
std::vector<detail::ArgDesc> MAssociatedAccesors;
160
145
161
- // / Struct that encodes global size, local size, ...
162
- detail::NDRDescT MNDRDesc;
163
-
164
146
// / Type of the command group, e.g. kernel, fill. Can also encode version.
165
147
// / Use getType and setType methods to access this variable unless
166
148
// / manipulations with version are required
@@ -241,16 +223,16 @@ class handler_impl {
241
223
// Allocation ptr to be freed asynchronously.
242
224
void *MFreePtr = nullptr ;
243
225
244
- // Store information about the kernel arguments.
245
- void *MKernelFuncPtr = nullptr ;
226
+ #ifndef __INTEL_PREVIEW_BREAKING_CHANGES
227
+ // TODO: remove in the next ABI-breaking window
228
+ // Today they are used only in the handler::setKernelNameBasedCachePtr
246
229
int MKernelNumArgs = 0 ;
247
230
detail::kernel_param_desc_t (*MKernelParamDescGetter)(int ) = nullptr;
248
231
bool MKernelIsESIMD = false ;
249
232
bool MKernelHasSpecialCaptures = true ;
233
+ #endif
250
234
251
- // A pointer to device kernel information. Cached on the application side in
252
- // headers or retrieved from program manager.
253
- DeviceKernelInfo *MDeviceKernelInfoPtr = nullptr ;
235
+ KernelData MKernelData;
254
236
};
255
237
256
238
} // namespace detail
0 commit comments