Skip to content

Commit bdbe295

Browse files
committed
[UR] Do not set kernel args in intercept functions for urEnqueueKernelLaunchWithArgsExp()
Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
1 parent 3a84c1e commit bdbe295

1 file changed

Lines changed: 0 additions & 57 deletions

File tree

  • unified-runtime/source/loader/layers/sanitizer/asan

unified-runtime/source/loader/layers/sanitizer/asan/asan_ddi.cpp

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1744,63 +1744,6 @@ __urdlllocal ur_result_t UR_APICALL urEnqueueKernelLaunchWithArgsExp(
17441744
std::memcpy(KernelInfo.ArgProps.data(), pArgs,
17451745
numArgs * sizeof(ur_exp_kernel_arg_properties_t));
17461746

1747-
// We need to set all the args now rather than letting LaunchWithArgs handle
1748-
// them. This is because some implementations of
1749-
// urKernelGetSuggestedLocalWorkSize, which is used in preLaunchKernel, rely
1750-
// on all the args being set.
1751-
for (uint32_t ArgPropIndex = 0; ArgPropIndex < numArgs; ArgPropIndex++) {
1752-
switch (pArgs[ArgPropIndex].type) {
1753-
case UR_EXP_KERNEL_ARG_TYPE_LOCAL: {
1754-
UR_CALL(ur_sanitizer_layer::asan::urKernelSetArgLocal(
1755-
hKernel, pArgs[ArgPropIndex].index, pArgs[ArgPropIndex].size,
1756-
nullptr));
1757-
KernelInfo.ArgProps[ArgPropIndex].size =
1758-
KernelInfo.LocalArgs[ArgPropIndex].SizeWithRedZone;
1759-
break;
1760-
}
1761-
case UR_EXP_KERNEL_ARG_TYPE_POINTER: {
1762-
UR_CALL(ur_sanitizer_layer::asan::urKernelSetArgPointer(
1763-
hKernel, pArgs[ArgPropIndex].index, nullptr,
1764-
pArgs[ArgPropIndex].value.pointer));
1765-
break;
1766-
}
1767-
case UR_EXP_KERNEL_ARG_TYPE_VALUE: {
1768-
UR_CALL(ur_sanitizer_layer::asan::urKernelSetArgValue(
1769-
hKernel, pArgs[ArgPropIndex].index, pArgs[ArgPropIndex].size, nullptr,
1770-
pArgs[ArgPropIndex].value.value));
1771-
break;
1772-
}
1773-
case UR_EXP_KERNEL_ARG_TYPE_MEM_OBJ: {
1774-
ur_kernel_arg_mem_obj_properties_t Properties = {
1775-
UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES, nullptr,
1776-
pArgs[ArgPropIndex].value.memObjTuple.flags};
1777-
UR_CALL(ur_sanitizer_layer::asan::urKernelSetArgMemObj(
1778-
hKernel, pArgs[ArgPropIndex].index, &Properties,
1779-
pArgs[ArgPropIndex].value.memObjTuple.hMem));
1780-
if (std::shared_ptr<MemBuffer> MemBuffer =
1781-
getAsanInterceptor()->getMemBuffer(
1782-
pArgs[ArgPropIndex].value.memObjTuple.hMem)) {
1783-
char *Handle = nullptr;
1784-
UR_CALL(MemBuffer->getHandle(GetDevice(hQueue), Handle));
1785-
KernelInfo.ArgProps[ArgPropIndex].type =
1786-
ur_exp_kernel_arg_type_t::UR_EXP_KERNEL_ARG_TYPE_POINTER;
1787-
KernelInfo.ArgProps[ArgPropIndex].value.pointer = Handle;
1788-
}
1789-
break;
1790-
}
1791-
case UR_EXP_KERNEL_ARG_TYPE_SAMPLER: {
1792-
auto pfnKernelSetArgSampler =
1793-
getContext()->urDdiTable.Kernel.pfnSetArgSampler;
1794-
UR_CALL(pfnKernelSetArgSampler(hKernel, pArgs[ArgPropIndex].index,
1795-
nullptr,
1796-
pArgs[ArgPropIndex].value.sampler));
1797-
break;
1798-
}
1799-
default:
1800-
return UR_RESULT_ERROR_INVALID_ENUMERATION;
1801-
}
1802-
}
1803-
18041747
LaunchInfo LaunchInfo(GetContext(hQueue), GetDevice(hQueue), pGlobalWorkSize,
18051748
pLocalWorkSize, pGlobalWorkOffset, workDim);
18061749
UR_CALL(LaunchInfo.Data.syncToDevice(hQueue));

0 commit comments

Comments
 (0)