@@ -517,19 +517,23 @@ event handler::finalize() {
517517 }
518518
519519#ifdef XPTI_ENABLE_INSTRUMENTATION
520- // uint32_t StreamID, uint64_t InstanceID, xpti_td* TraceEvent,
521- int32_t StreamID = xptiRegisterStream (detail::SYCL_STREAM_NAME);
522- auto [CmdTraceEvent, InstanceID] = emitKernelInstrumentationData (
523- StreamID, MKernel, MCodeLoc, impl->MIsTopCodeLoc , MKernelName.data (),
524- MQueue, impl->MNDRDesc , KernelBundleImpPtr, impl->MArgs );
525- auto EnqueueKernel = [&, CmdTraceEvent = CmdTraceEvent,
526- InstanceID = InstanceID]() {
527- #else
528- auto EnqueueKernel = [&]() {
520+ const static bool xptiEnabled = xptiTraceEnabled ();
529521#endif
522+ auto EnqueueKernel = [&]() {
530523#ifdef XPTI_ENABLE_INSTRUMENTATION
531- detail::emitInstrumentationGeneral (StreamID, InstanceID, CmdTraceEvent,
532- xpti::trace_task_begin, nullptr );
524+ int32_t StreamID = xpti::invalid_id;
525+ xpti_td *CmdTraceEvent = nullptr ;
526+ uint64_t InstanceID = 0 ;
527+ if (xptiEnabled) {
528+ int32_t StreamID = xptiRegisterStream (detail::SYCL_STREAM_NAME);
529+ std::tie (CmdTraceEvent, InstanceID) = emitKernelInstrumentationData (
530+ StreamID, MKernel, MCodeLoc, impl->MIsTopCodeLoc ,
531+ MKernelName.data (), MQueue, impl->MNDRDesc , KernelBundleImpPtr,
532+ impl->MArgs );
533+ detail::emitInstrumentationGeneral (StreamID, InstanceID,
534+ CmdTraceEvent,
535+ xpti::trace_task_begin, nullptr );
536+ }
533537#endif
534538 const detail::RTDeviceBinaryImage *BinImage = nullptr ;
535539 if (detail::SYCLConfig<detail::SYCL_JIT_AMDGCN_PTX_KERNELS>::get ()) {
@@ -545,14 +549,17 @@ event handler::finalize() {
545549 impl->MKernelUsesClusterLaunch ,
546550 impl->MKernelWorkGroupMemorySize , BinImage);
547551#ifdef XPTI_ENABLE_INSTRUMENTATION
548- // Emit signal only when event is created
549- if (!DiscardEvent) {
550- detail::emitInstrumentationGeneral (
551- StreamID, InstanceID, CmdTraceEvent, xpti::trace_signal,
552- static_cast <const void *>(LastEventImpl->getHandle ()));
552+ if (xptiEnabled) {
553+ // Emit signal only when event is created
554+ if (!DiscardEvent) {
555+ detail::emitInstrumentationGeneral (
556+ StreamID, InstanceID, CmdTraceEvent, xpti::trace_signal,
557+ static_cast <const void *>(LastEventImpl->getHandle ()));
558+ }
559+ detail::emitInstrumentationGeneral (StreamID, InstanceID,
560+ CmdTraceEvent,
561+ xpti::trace_task_end, nullptr );
553562 }
554- detail::emitInstrumentationGeneral (StreamID, InstanceID, CmdTraceEvent,
555- xpti::trace_task_end, nullptr );
556563#endif
557564 };
558565
0 commit comments