File tree 2 files changed +9
-0
lines changed
source/loader/layers/sanitizer/asan
2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -474,6 +474,13 @@ __urdlllocal ur_result_t UR_APICALL urEnqueueKernelLaunch(
474
474
// / [out][optional] return an event object that identifies this
475
475
// / particular kernel execution instance.
476
476
ur_event_handle_t *phEvent) {
477
+
478
+ // This mutex is to prevent concurrent kernel launches across different queues
479
+ // as the DeviceASAN local/private shadow memory does not support concurrent
480
+ // kernel launches now.
481
+ std::scoped_lock<ur_shared_mutex> Guard (
482
+ getAsanInterceptor ()->KernelLaunchMutex );
483
+
477
484
auto pfnKernelLaunch = getContext ()->urDdiTable .Enqueue .pfnKernelLaunch ;
478
485
479
486
if (nullptr == pfnKernelLaunch) {
Original file line number Diff line number Diff line change @@ -354,6 +354,8 @@ class AsanInterceptor {
354
354
std::shared_ptr<ShadowMemory>
355
355
getOrCreateShadowMemory (ur_device_handle_t Device, DeviceType Type);
356
356
357
+ ur_shared_mutex KernelLaunchMutex;
358
+
357
359
private:
358
360
ur_result_t updateShadowMemory (std::shared_ptr<ContextInfo> &ContextInfo,
359
361
std::shared_ptr<DeviceInfo> &DeviceInfo,
You can’t perform that action at this time.
0 commit comments