@@ -50,12 +50,6 @@ ur_result_t setupContext(ur_context_handle_t Context, uint32_t numDevices,
50
50
return UR_RESULT_SUCCESS;
51
51
}
52
52
53
- bool isInstrumentedKernel (ur_kernel_handle_t hKernel) {
54
- auto hProgram = GetProgram (hKernel);
55
- auto PI = getMsanInterceptor ()->getProgramInfo (hProgram);
56
- return PI->isKernelInstrumented (hKernel);
57
- }
58
-
59
53
} // namespace
60
54
61
55
// /////////////////////////////////////////////////////////////////////////////
@@ -354,12 +348,6 @@ ur_result_t urEnqueueKernelLaunch(
354
348
355
349
getContext ()->logger .debug (" ==== urEnqueueKernelLaunch" );
356
350
357
- if (!isInstrumentedKernel (hKernel)) {
358
- return pfnKernelLaunch (hQueue, hKernel, workDim, pGlobalWorkOffset,
359
- pGlobalWorkSize, pLocalWorkSize,
360
- numEventsInWaitList, phEventWaitList, phEvent);
361
- }
362
-
363
351
USMLaunchInfo LaunchInfo (GetContext (hQueue), GetDevice (hQueue),
364
352
pGlobalWorkSize, pLocalWorkSize, pGlobalWorkOffset,
365
353
workDim);
@@ -1155,26 +1143,6 @@ ur_result_t urEnqueueMemUnmap(
1155
1143
return UR_RESULT_SUCCESS;
1156
1144
}
1157
1145
1158
- // /////////////////////////////////////////////////////////////////////////////
1159
- // / @brief Intercept function for urKernelCreate
1160
- ur_result_t urKernelCreate (
1161
- ur_program_handle_t hProgram, // /< [in] handle of the program instance
1162
- const char *pKernelName, // /< [in] pointer to null-terminated string.
1163
- ur_kernel_handle_t
1164
- *phKernel // /< [out] pointer to handle of kernel object created.
1165
- ) {
1166
- auto pfnCreate = getContext ()->urDdiTable .Kernel .pfnCreate ;
1167
-
1168
- getContext ()->logger .debug (" ==== urKernelCreate" );
1169
-
1170
- UR_CALL (pfnCreate (hProgram, pKernelName, phKernel));
1171
- if (isInstrumentedKernel (*phKernel)) {
1172
- UR_CALL (getMsanInterceptor ()->insertKernel (*phKernel));
1173
- }
1174
-
1175
- return UR_RESULT_SUCCESS;
1176
- }
1177
-
1178
1146
// /////////////////////////////////////////////////////////////////////////////
1179
1147
// / @brief Intercept function for urKernelRetain
1180
1148
ur_result_t urKernelRetain (
@@ -1186,10 +1154,8 @@ ur_result_t urKernelRetain(
1186
1154
1187
1155
UR_CALL (pfnRetain (hKernel));
1188
1156
1189
- auto KernelInfo = getMsanInterceptor ()->getKernelInfo (hKernel);
1190
- if (KernelInfo) {
1191
- KernelInfo->RefCount ++;
1192
- }
1157
+ auto &KernelInfo = getMsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1158
+ KernelInfo.RefCount ++;
1193
1159
1194
1160
return UR_RESULT_SUCCESS;
1195
1161
}
@@ -1204,11 +1170,9 @@ ur_result_t urKernelRelease(
1204
1170
getContext ()->logger .debug (" ==== urKernelRelease" );
1205
1171
UR_CALL (pfnRelease (hKernel));
1206
1172
1207
- auto KernelInfo = getMsanInterceptor ()->getKernelInfo (hKernel);
1208
- if (KernelInfo) {
1209
- if (--KernelInfo->RefCount == 0 ) {
1210
- UR_CALL (getMsanInterceptor ()->eraseKernel (hKernel));
1211
- }
1173
+ auto &KernelInfo = getMsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1174
+ if (--KernelInfo.RefCount == 0 ) {
1175
+ UR_CALL (getMsanInterceptor ()->eraseKernelInfo (hKernel));
1212
1176
}
1213
1177
1214
1178
return UR_RESULT_SUCCESS;
@@ -1230,13 +1194,12 @@ ur_result_t urKernelSetArgValue(
1230
1194
getContext ()->logger .debug (" ==== urKernelSetArgValue" );
1231
1195
1232
1196
std::shared_ptr<MemBuffer> MemBuffer;
1233
- std::shared_ptr<KernelInfo> KernelInfo;
1234
1197
if (argSize == sizeof (ur_mem_handle_t ) &&
1235
1198
(MemBuffer = getMsanInterceptor ()->getMemBuffer (
1236
- *ur_cast<const ur_mem_handle_t *>(pArgValue))) &&
1237
- ( KernelInfo = getMsanInterceptor ()->getKernelInfo (hKernel))) {
1238
- std::scoped_lock<ur_shared_mutex> Guard (KernelInfo-> Mutex );
1239
- KernelInfo-> BufferArgs [argIndex] = std::move (MemBuffer);
1199
+ *ur_cast<const ur_mem_handle_t *>(pArgValue)))) {
1200
+ auto & KernelInfo = getMsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1201
+ std::scoped_lock<ur_shared_mutex> Guard (KernelInfo. Mutex );
1202
+ KernelInfo. BufferArgs [argIndex] = std::move (MemBuffer);
1240
1203
} else {
1241
1204
UR_CALL (
1242
1205
pfnSetArgValue (hKernel, argIndex, argSize, pProperties, pArgValue));
@@ -1260,10 +1223,10 @@ ur_result_t urKernelSetArgMemObj(
1260
1223
1261
1224
std::shared_ptr<MemBuffer> MemBuffer;
1262
1225
std::shared_ptr<KernelInfo> KernelInfo;
1263
- if ((MemBuffer = getMsanInterceptor ()->getMemBuffer (hArgValue)) &&
1264
- ( KernelInfo = getMsanInterceptor ()->getKernelInfo (hKernel))) {
1265
- std::scoped_lock<ur_shared_mutex> Guard (KernelInfo-> Mutex );
1266
- KernelInfo-> BufferArgs [argIndex] = std::move (MemBuffer);
1226
+ if ((MemBuffer = getMsanInterceptor ()->getMemBuffer (hArgValue))) {
1227
+ auto & KernelInfo = getMsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1228
+ std::scoped_lock<ur_shared_mutex> Guard (KernelInfo. Mutex );
1229
+ KernelInfo. BufferArgs [argIndex] = std::move (MemBuffer);
1267
1230
} else {
1268
1231
UR_CALL (pfnSetArgMemObj (hKernel, argIndex, pProperties, hArgValue));
1269
1232
}
@@ -1348,7 +1311,6 @@ ur_result_t urGetKernelProcAddrTable(
1348
1311
) {
1349
1312
ur_result_t result = UR_RESULT_SUCCESS;
1350
1313
1351
- pDdiTable->pfnCreate = ur_sanitizer_layer::msan::urKernelCreate;
1352
1314
pDdiTable->pfnRetain = ur_sanitizer_layer::msan::urKernelRetain;
1353
1315
pDdiTable->pfnRelease = ur_sanitizer_layer::msan::urKernelRelease;
1354
1316
pDdiTable->pfnSetArgValue = ur_sanitizer_layer::msan::urKernelSetArgValue;
0 commit comments