Skip to content

Commit b38a467

Browse files
Assert data presence in CG
1 parent 7fde713 commit b38a467

File tree

8 files changed

+29
-34
lines changed

8 files changed

+29
-34
lines changed

sycl/source/detail/cg.hpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ class CGExecKernel : public CG {
254254
std::shared_ptr<detail::kernel_bundle_impl> MKernelBundle;
255255
std::vector<ArgDesc> MArgs;
256256
KernelNameStrT MKernelName;
257-
KernelNameBasedData *MKernelNameBasedDataPtr;
257+
KernelNameBasedData &MKernelNameBasedData;
258258
std::vector<std::shared_ptr<detail::stream_impl>> MStreams;
259259
std::vector<std::shared_ptr<const void>> MAuxiliaryResources;
260260
/// Used to implement ext_oneapi_graph dynamic_command_group. Stores the list
@@ -270,7 +270,7 @@ class CGExecKernel : public CG {
270270
std::shared_ptr<detail::kernel_bundle_impl> KernelBundle,
271271
CG::StorageInitHelper CGData, std::vector<ArgDesc> Args,
272272
KernelNameStrT KernelName,
273-
KernelNameBasedData *KernelNameBasedDataPtr,
273+
KernelNameBasedData &KernelNameBasedData,
274274
std::vector<std::shared_ptr<detail::stream_impl>> Streams,
275275
std::vector<std::shared_ptr<const void>> AuxiliaryResources,
276276
CGType Type, ur_kernel_cache_config_t KernelCacheConfig,
@@ -280,8 +280,7 @@ class CGExecKernel : public CG {
280280
MHostKernel(std::move(HKernel)), MSyclKernel(std::move(SyclKernel)),
281281
MKernelBundle(std::move(KernelBundle)), MArgs(std::move(Args)),
282282
MKernelName(std::move(KernelName)),
283-
MKernelNameBasedDataPtr(KernelNameBasedDataPtr),
284-
MStreams(std::move(Streams)),
283+
MKernelNameBasedData(KernelNameBasedData), MStreams(std::move(Streams)),
285284
MAuxiliaryResources(std::move(AuxiliaryResources)),
286285
MAlternativeKernels{}, MKernelCacheConfig(std::move(KernelCacheConfig)),
287286
MKernelIsCooperative(KernelIsCooperative),

sycl/source/detail/graph/graph_impl.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ ur_exp_command_buffer_sync_point_t exec_graph_impl::enqueueNodeDirect(
741741
CGExec->MLine, CGExec->MColumn);
742742
std::tie(CmdTraceEvent, InstanceID) = emitKernelInstrumentationData(
743743
StreamID, CGExec->MSyclKernel, CodeLoc, CGExec->MIsTopCodeLoc,
744-
CGExec->MKernelName.data(), CGExec->MKernelNameBasedDataPtr, nullptr,
744+
CGExec->MKernelName.data(), CGExec->MKernelNameBasedData, nullptr,
745745
CGExec->MNDRDesc, CGExec->MKernelBundle.get(), CGExec->MArgs);
746746
if (CmdTraceEvent)
747747
sycl::detail::emitInstrumentationGeneral(
@@ -1573,10 +1573,9 @@ void exec_graph_impl::populateURKernelUpdateStructs(
15731573
UrKernel = SyclKernelImpl->getHandleRef();
15741574
EliminatedArgMask = SyclKernelImpl->getKernelArgMask();
15751575
} else {
1576-
assert(ExecCG.MKernelNameBasedDataPtr);
15771576
BundleObjs = sycl::detail::ProgramManager::getInstance().getOrCreateKernel(
15781577
ContextImpl, DeviceImpl, ExecCG.MKernelName,
1579-
*ExecCG.MKernelNameBasedDataPtr);
1578+
ExecCG.MKernelNameBasedData);
15801579
UrKernel = BundleObjs->MKernelHandle;
15811580
EliminatedArgMask = BundleObjs->MKernelArgMask;
15821581
}

sycl/source/detail/scheduler/commands.cpp

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1988,7 +1988,7 @@ std::string instrumentationGetKernelName(
19881988
void instrumentationAddExtraKernelMetadata(
19891989
xpti_td *&CmdTraceEvent, const NDRDescT &NDRDesc,
19901990
detail::kernel_bundle_impl *KernelBundleImplPtr,
1991-
KernelNameStrRefT KernelName, KernelNameBasedData *KernelNameBasedDataPtr,
1991+
KernelNameStrRefT KernelName, KernelNameBasedData &KernelNameBasedData,
19921992
const std::shared_ptr<detail::kernel_impl> &SyclKernel, queue_impl *Queue,
19931993
std::vector<ArgDesc> &CGArgs) // CGArgs are not const since they could be
19941994
// sorted in this function
@@ -2012,11 +2012,10 @@ void instrumentationAddExtraKernelMetadata(
20122012
// NOTE: Queue can be null when kernel is directly enqueued to a command
20132013
// buffer
20142014
// by graph API, when a modifiable graph is finalized.
2015-
assert(KernelNameBasedDataPtr);
20162015
FastKernelCacheValPtr FastKernelCacheVal =
20172016
detail::ProgramManager::getInstance().getOrCreateKernel(
20182017
Queue->getContextImpl(), Queue->getDeviceImpl(), KernelName,
2019-
*KernelNameBasedDataPtr);
2018+
KernelNameBasedData);
20202019
EliminatedArgMask = FastKernelCacheVal->MKernelArgMask;
20212020
}
20222021

@@ -2104,7 +2103,7 @@ std::pair<xpti_td *, uint64_t> emitKernelInstrumentationData(
21042103
const std::shared_ptr<detail::kernel_impl> &SyclKernel,
21052104
const detail::code_location &CodeLoc, bool IsTopCodeLoc,
21062105
const std::string_view SyclKernelName,
2107-
KernelNameBasedData *KernelNameBasedDataPtr, queue_impl *Queue,
2106+
KernelNameBasedData &KernelNameBasedData, queue_impl *Queue,
21082107
const NDRDescT &NDRDesc, detail::kernel_bundle_impl *KernelBundleImplPtr,
21092108
std::vector<ArgDesc> &CGArgs) {
21102109

@@ -2143,7 +2142,7 @@ std::pair<xpti_td *, uint64_t> emitKernelInstrumentationData(
21432142
getQueueID(Queue));
21442143
instrumentationAddExtraKernelMetadata(
21452144
CmdTraceEvent, NDRDesc, KernelBundleImplPtr,
2146-
std::string(SyclKernelName), KernelNameBasedDataPtr, SyclKernel, Queue,
2145+
std::string(SyclKernelName), KernelNameBasedData, SyclKernel, Queue,
21472146
CGArgs);
21482147

21492148
xptiNotifySubscribers(
@@ -2199,7 +2198,7 @@ void ExecCGCommand::emitInstrumentationData() {
21992198
reinterpret_cast<detail::CGExecKernel *>(MCommandGroup.get());
22002199
instrumentationAddExtraKernelMetadata(
22012200
CmdTraceEvent, KernelCG->MNDRDesc, KernelCG->getKernelBundle().get(),
2202-
KernelCG->MKernelName, KernelCG->MKernelNameBasedDataPtr,
2201+
KernelCG->MKernelName, KernelCG->MKernelNameBasedData,
22032202
KernelCG->MSyclKernel, MQueue.get(), KernelCG->MArgs);
22042203
}
22052204

@@ -2401,7 +2400,7 @@ static ur_result_t SetKernelParamsAndLaunch(
24012400
const std::function<void *(Requirement *Req)> &getMemAllocationFunc,
24022401
bool IsCooperative, bool KernelUsesClusterLaunch,
24032402
uint32_t WorkGroupMemorySize, const RTDeviceBinaryImage *BinImage,
2404-
KernelNameStrRefT KernelName, KernelNameBasedData *KernelNameBasedDataPtr,
2403+
KernelNameStrRefT KernelName, KernelNameBasedData &KernelNameBasedData,
24052404
void *KernelFuncPtr = nullptr, int KernelNumArgs = 0,
24062405
detail::kernel_param_desc_t (*KernelParamDescGetter)(int) = nullptr,
24072406
bool KernelHasSpecialCaptures = true) {
@@ -2448,7 +2447,7 @@ static ur_result_t SetKernelParamsAndLaunch(
24482447
}
24492448

24502449
const std::optional<int> &ImplicitLocalArg =
2451-
KernelNameBasedDataPtr->getImplicitLocalArgPos();
2450+
KernelNameBasedData.getImplicitLocalArgPos();
24522451
// Set the implicit local memory buffer to support
24532452
// get_work_group_scratch_memory. This is for backend not supporting
24542453
// CUDA-style local memory setting. Note that we may have -1 as a position,
@@ -2549,11 +2548,10 @@ getCGKernelInfo(const CGExecKernel &CommandGroup, context_impl &ContextImpl,
25492548
DeviceImageImpl = &SyclKernelImpl->getDeviceImage();
25502549
EliminatedArgMask = SyclKernelImpl->getKernelArgMask();
25512550
} else {
2552-
assert(CommandGroup.MKernelNameBasedDataPtr);
25532551
FastKernelCacheValPtr FastKernelCacheVal =
25542552
sycl::detail::ProgramManager::getInstance().getOrCreateKernel(
25552553
ContextImpl, DeviceImpl, CommandGroup.MKernelName,
2556-
*CommandGroup.MKernelNameBasedDataPtr);
2554+
CommandGroup.MKernelNameBasedData);
25572555
UrKernel = FastKernelCacheVal->MKernelHandle;
25582556
EliminatedArgMask = FastKernelCacheVal->MKernelArgMask;
25592557
// To keep UrKernel valid, we return FastKernelCacheValPtr.
@@ -2668,7 +2666,7 @@ void enqueueImpKernel(
26682666
queue_impl &Queue, NDRDescT &NDRDesc, std::vector<ArgDesc> &Args,
26692667
detail::kernel_bundle_impl *KernelBundleImplPtr,
26702668
const detail::kernel_impl *MSyclKernel, KernelNameStrRefT KernelName,
2671-
KernelNameBasedData *KernelNameBasedDataPtr,
2669+
KernelNameBasedData &KernelNameBasedData,
26722670
std::vector<ur_event_handle_t> &RawEvents, detail::event_impl *OutEventImpl,
26732671
const std::function<void *(Requirement *Req)> &getMemAllocationFunc,
26742672
ur_kernel_cache_config_t KernelCacheConfig, const bool KernelIsCooperative,
@@ -2714,9 +2712,8 @@ void enqueueImpKernel(
27142712
EliminatedArgMask = SyclKernelImpl->getKernelArgMask();
27152713
KernelMutex = SyclKernelImpl->getCacheMutex();
27162714
} else {
2717-
assert(KernelNameBasedDataPtr);
27182715
KernelCacheVal = detail::ProgramManager::getInstance().getOrCreateKernel(
2719-
ContextImpl, DeviceImpl, KernelName, *KernelNameBasedDataPtr, NDRDesc);
2716+
ContextImpl, DeviceImpl, KernelName, KernelNameBasedData, NDRDesc);
27202717
Kernel = KernelCacheVal->MKernelHandle;
27212718
KernelMutex = KernelCacheVal->MMutex;
27222719
Program = KernelCacheVal->MProgramHandle;
@@ -2763,8 +2760,8 @@ void enqueueImpKernel(
27632760
Queue, Args, DeviceImageImpl, Kernel, NDRDesc, EventsWaitList,
27642761
OutEventImpl, EliminatedArgMask, getMemAllocationFunc,
27652762
KernelIsCooperative, KernelUsesClusterLaunch, WorkGroupMemorySize,
2766-
BinImage, KernelName, KernelNameBasedDataPtr, KernelFuncPtr,
2767-
KernelNumArgs, KernelParamDescGetter, KernelHasSpecialCaptures);
2763+
BinImage, KernelName, KernelNameBasedData, KernelFuncPtr, KernelNumArgs,
2764+
KernelParamDescGetter, KernelHasSpecialCaptures);
27682765
}
27692766
if (UR_RESULT_SUCCESS != Error) {
27702767
// If we have got non-success error code, let's analyze it to emit nice
@@ -3243,7 +3240,7 @@ ur_result_t ExecCGCommand::enqueueImpQueue() {
32433240
if (!EventImpl) {
32443241
// Kernel only uses assert if it's non interop one
32453242
bool KernelUsesAssert = (!SyclKernel || SyclKernel->hasSYCLMetadata()) &&
3246-
ExecKernel->MKernelNameBasedDataPtr->usesAssert();
3243+
ExecKernel->MKernelNameBasedData.usesAssert();
32473244
if (KernelUsesAssert) {
32483245
EventImpl = MEvent.get();
32493246
}
@@ -3256,7 +3253,7 @@ ur_result_t ExecCGCommand::enqueueImpQueue() {
32563253
}
32573254
enqueueImpKernel(
32583255
*MQueue, NDRDesc, Args, ExecKernel->getKernelBundle().get(),
3259-
SyclKernel.get(), KernelName, ExecKernel->MKernelNameBasedDataPtr,
3256+
SyclKernel.get(), KernelName, ExecKernel->MKernelNameBasedData,
32603257
RawEvents, EventImpl, getMemAllocationFunc,
32613258
ExecKernel->MKernelCacheConfig, ExecKernel->MKernelIsCooperative,
32623259
ExecKernel->MKernelUsesClusterLaunch,

sycl/source/detail/scheduler/commands.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ void enqueueImpKernel(
628628
queue_impl &Queue, NDRDescT &NDRDesc, std::vector<ArgDesc> &Args,
629629
detail::kernel_bundle_impl *KernelBundleImplPtr,
630630
const detail::kernel_impl *MSyclKernel, KernelNameStrRefT KernelName,
631-
KernelNameBasedData *KernelNameBasedDataPtr,
631+
KernelNameBasedData &KernelNameBasedData,
632632
std::vector<ur_event_handle_t> &RawEvents, detail::event_impl *OutEventImpl,
633633
const std::function<void *(Requirement *Req)> &getMemAllocationFunc,
634634
ur_kernel_cache_config_t KernelCacheConfig, bool KernelIsCooperative,
@@ -694,9 +694,9 @@ std::pair<xpti_td *, uint64_t> emitKernelInstrumentationData(
694694
xpti::stream_id_t StreamID,
695695
const std::shared_ptr<detail::kernel_impl> &SyclKernel,
696696
const detail::code_location &CodeLoc, bool IsTopCodeLoc,
697-
std::string_view SyclKernelName,
698-
KernelNameBasedData *KernelNameBasedDataPtr, queue_impl *Queue,
699-
const NDRDescT &NDRDesc, detail::kernel_bundle_impl *KernelBundleImplPtr,
697+
std::string_view SyclKernelName, KernelNameBasedData &KernelNameBasedData,
698+
queue_impl *Queue, const NDRDescT &NDRDesc,
699+
detail::kernel_bundle_impl *KernelBundleImplPtr,
700700
std::vector<ArgDesc> &CGArgs);
701701
#endif
702702

sycl/source/handler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ event handler::finalize() {
645645
StreamID = xptiRegisterStream(detail::SYCL_STREAM_NAME);
646646
std::tie(CmdTraceEvent, InstanceID) = emitKernelInstrumentationData(
647647
StreamID, MKernel, MCodeLoc, impl->MIsTopCodeLoc,
648-
MKernelName.data(), impl->MKernelNameBasedDataPtr,
648+
MKernelName.data(), *impl->MKernelNameBasedDataPtr,
649649
impl->get_queue_or_null(), impl->MNDRDesc, KernelBundleImpPtr,
650650
impl->MArgs);
651651
detail::emitInstrumentationGeneral(StreamID, InstanceID,
@@ -662,7 +662,7 @@ event handler::finalize() {
662662
enqueueImpKernel(
663663
impl->get_queue(), impl->MNDRDesc, impl->MArgs, KernelBundleImpPtr,
664664
MKernel.get(), toKernelNameStrT(MKernelName),
665-
impl->MKernelNameBasedDataPtr, RawEvents, ResultEvent.get(),
665+
*impl->MKernelNameBasedDataPtr, RawEvents, ResultEvent.get(),
666666
nullptr, impl->MKernelCacheConfig, impl->MKernelIsCooperative,
667667
impl->MKernelUsesClusterLaunch, impl->MKernelWorkGroupMemorySize,
668668
BinImage, impl->MKernelFuncPtr, impl->MKernelNumArgs,
@@ -723,7 +723,7 @@ event handler::finalize() {
723723
impl->MNDRDesc, std::move(MHostKernel), std::move(MKernel),
724724
std::move(impl->MKernelBundle), std::move(impl->CGData),
725725
std::move(impl->MArgs), toKernelNameStrT(MKernelName),
726-
impl->MKernelNameBasedDataPtr, std::move(MStreamStorage),
726+
*impl->MKernelNameBasedDataPtr, std::move(MStreamStorage),
727727
std::move(impl->MAuxiliaryResources), getType(),
728728
impl->MKernelCacheConfig, impl->MKernelIsCooperative,
729729
impl->MKernelUsesClusterLaunch, impl->MKernelWorkGroupMemorySize,

sycl/unittests/program_manager/arg_mask/EliminatedArgMask.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class MockHandler : public sycl::handler {
148148
std::move(impl->MNDRDesc), std::move(CGH->MHostKernel),
149149
std::move(CGH->MKernel), std::move(impl->MKernelBundle),
150150
std::move(impl->CGData), std::move(impl->MArgs),
151-
CGH->MKernelName.data(), impl->MKernelNameBasedDataPtr,
151+
CGH->MKernelName.data(), *impl->MKernelNameBasedDataPtr,
152152
std::move(CGH->MStreamStorage), std::move(impl->MAuxiliaryResources),
153153
impl->MCGType, {}, impl->MKernelIsCooperative,
154154
impl->MKernelUsesClusterLaunch, impl->MKernelWorkGroupMemorySize,

sycl/unittests/scheduler/SchedulerTestUtils.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ class MockHandlerCustomFinalize : public MockHandler {
303303
CommandGroup.reset(new sycl::detail::CGExecKernel(
304304
getNDRDesc(), std::move(getHostKernel()), getKernel(),
305305
std::move(impl->MKernelBundle), std::move(CGData), getArgs(),
306-
getKernelName(), impl->MKernelNameBasedDataPtr, getStreamStorage(),
306+
getKernelName(), *impl->MKernelNameBasedDataPtr, getStreamStorage(),
307307
impl->MAuxiliaryResources, getType(), {}, impl->MKernelIsCooperative,
308308
impl->MKernelUsesClusterLaunch, impl->MKernelWorkGroupMemorySize,
309309
getCodeLoc()));

sycl/unittests/scheduler/StreamInitDependencyOnHost.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class MockHandlerStreamInit : public MockHandler {
3333
detail::CG::StorageInitHelper(getArgsStorage(), getAccStorage(),
3434
getSharedPtrStorage(),
3535
getRequirements(), getEvents()),
36-
getArgs(), getKernelName(), impl->MKernelNameBasedDataPtr,
36+
getArgs(), getKernelName(), *impl->MKernelNameBasedDataPtr,
3737
getStreamStorage(), std::move(impl->MAuxiliaryResources), getType(),
3838
{}, impl->MKernelIsCooperative, impl->MKernelUsesClusterLaunch,
3939
impl->MKernelWorkGroupMemorySize, getCodeLoc()));

0 commit comments

Comments
 (0)