compute-runtime/level_zero/experimental/source/tracing/tracing_module_imp.cpp

794 lines
37 KiB
C++

/*
* Copyright (C) 2020-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "level_zero/experimental/source/tracing/tracing_imp.h"
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleCreateTracing(ze_context_handle_t hContext,
ze_device_handle_t hDevice,
const ze_module_desc_t *desc,
ze_module_handle_t *phModule,
ze_module_build_log_handle_t *phBuildLog) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnCreate,
hContext,
hDevice,
desc,
phModule,
phBuildLog);
ze_module_create_params_t tracerParams;
tracerParams.phContext = &hContext;
tracerParams.phDevice = &hDevice;
tracerParams.pdesc = &desc;
tracerParams.pphModule = &phModule;
tracerParams.pphBuildLog = &phBuildLog;
L0::APITracerCallbackDataImp<ze_pfnModuleCreateCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleCreateCb_t, Module, pfnCreateCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnCreate,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phContext,
*tracerParams.phDevice,
*tracerParams.pdesc,
*tracerParams.pphModule,
*tracerParams.pphBuildLog);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleDestroyTracing(ze_module_handle_t hModule) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnDestroy,
hModule);
ze_module_destroy_params_t tracerParams;
tracerParams.phModule = &hModule;
L0::APITracerCallbackDataImp<ze_pfnModuleDestroyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleDestroyCb_t, Module, pfnDestroyCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnDestroy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleBuildLogDestroyTracing(ze_module_build_log_handle_t hModuleBuildLog) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.ModuleBuildLog.pfnDestroy,
hModuleBuildLog);
ze_module_build_log_destroy_params_t tracerParams;
tracerParams.phModuleBuildLog = &hModuleBuildLog;
L0::APITracerCallbackDataImp<ze_pfnModuleBuildLogDestroyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleBuildLogDestroyCb_t, ModuleBuildLog, pfnDestroyCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.ModuleBuildLog.pfnDestroy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModuleBuildLog);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleBuildLogGetStringTracing(ze_module_build_log_handle_t hModuleBuildLog,
size_t *pSize,
char *pBuildLog) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.ModuleBuildLog.pfnGetString,
hModuleBuildLog,
pSize,
pBuildLog);
ze_module_build_log_get_string_params_t tracerParams;
tracerParams.phModuleBuildLog = &hModuleBuildLog;
tracerParams.ppSize = &pSize;
tracerParams.ppBuildLog = &pBuildLog;
L0::APITracerCallbackDataImp<ze_pfnModuleBuildLogGetStringCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleBuildLogGetStringCb_t, ModuleBuildLog, pfnGetStringCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.ModuleBuildLog.pfnGetString,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModuleBuildLog,
*tracerParams.ppSize,
*tracerParams.ppBuildLog);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleGetNativeBinaryTracing(ze_module_handle_t hModule,
size_t *pSize,
uint8_t *pModuleNativeBinary) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnGetNativeBinary,
hModule,
pSize,
pModuleNativeBinary);
ze_module_get_native_binary_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.ppSize = &pSize;
tracerParams.ppModuleNativeBinary = &pModuleNativeBinary;
L0::APITracerCallbackDataImp<ze_pfnModuleGetNativeBinaryCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleGetNativeBinaryCb_t, Module, pfnGetNativeBinaryCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnGetNativeBinary,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.ppSize,
*tracerParams.ppModuleNativeBinary);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleGetGlobalPointerTracing(ze_module_handle_t hModule,
const char *pGlobalName,
size_t *pSize,
void **pptr) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnGetGlobalPointer,
hModule,
pGlobalName,
pSize,
pptr);
ze_module_get_global_pointer_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.ppGlobalName = &pGlobalName;
tracerParams.ppSize = &pSize;
tracerParams.ppptr = &pptr;
L0::APITracerCallbackDataImp<ze_pfnModuleGetGlobalPointerCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleGetGlobalPointerCb_t, Module, pfnGetGlobalPointerCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnGetGlobalPointer,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.ppGlobalName,
*tracerParams.ppSize,
*tracerParams.ppptr);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleDynamicLinkTracing(uint32_t numModules,
ze_module_handle_t *phModules,
ze_module_build_log_handle_t *phLinkLog) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnDynamicLink,
numModules,
phModules,
phLinkLog);
ze_module_dynamic_link_params_t tracerParams;
tracerParams.pnumModules = &numModules;
tracerParams.pphModules = &phModules;
tracerParams.pphLinkLog = &phLinkLog;
L0::APITracerCallbackDataImp<ze_pfnModuleDynamicLinkCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleDynamicLinkCb_t, Module, pfnDynamicLinkCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnDynamicLink,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.pnumModules,
*tracerParams.pphModules,
*tracerParams.pphLinkLog);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleGetPropertiesTracing(ze_module_handle_t hModule,
ze_module_properties_t *pModuleProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnGetProperties,
hModule,
pModuleProperties);
ze_module_get_properties_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.ppModuleProperties = &pModuleProperties;
L0::APITracerCallbackDataImp<ze_pfnModuleGetPropertiesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleGetPropertiesCb_t, Module, pfnGetPropertiesCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnGetProperties,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.ppModuleProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelCreateTracing(ze_module_handle_t hModule,
const ze_kernel_desc_t *desc,
ze_kernel_handle_t *phKernel) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnCreate,
hModule,
desc,
phKernel);
ze_kernel_create_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.pdesc = &desc;
tracerParams.pphKernel = &phKernel;
L0::APITracerCallbackDataImp<ze_pfnKernelCreateCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelCreateCb_t, Kernel, pfnCreateCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnCreate,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.pdesc,
*tracerParams.pphKernel);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelDestroyTracing(ze_kernel_handle_t hKernel) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnDestroy,
hKernel);
ze_kernel_destroy_params_t tracerParams;
tracerParams.phKernel = &hKernel;
L0::APITracerCallbackDataImp<ze_pfnKernelDestroyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelDestroyCb_t, Kernel, pfnDestroyCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnDestroy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleGetFunctionPointerTracing(ze_module_handle_t hModule,
const char *pKernelName,
void **pfnFunction) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnGetFunctionPointer,
hModule,
pKernelName,
pfnFunction);
ze_module_get_function_pointer_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.ppFunctionName = &pKernelName;
tracerParams.ppfnFunction = &pfnFunction;
L0::APITracerCallbackDataImp<ze_pfnModuleGetFunctionPointerCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleGetFunctionPointerCb_t, Module, pfnGetFunctionPointerCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnGetFunctionPointer,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.ppFunctionName,
*tracerParams.ppfnFunction);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSetGroupSizeTracing(ze_kernel_handle_t hKernel,
uint32_t groupSizeX,
uint32_t groupSizeY,
uint32_t groupSizeZ) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSetGroupSize,
hKernel,
groupSizeX,
groupSizeY,
groupSizeZ);
ze_kernel_set_group_size_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.pgroupSizeX = &groupSizeX;
tracerParams.pgroupSizeY = &groupSizeY;
tracerParams.pgroupSizeZ = &groupSizeZ;
L0::APITracerCallbackDataImp<ze_pfnKernelSetGroupSizeCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelSetGroupSizeCb_t, Kernel, pfnSetGroupSizeCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSetGroupSize,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.pgroupSizeX,
*tracerParams.pgroupSizeY,
*tracerParams.pgroupSizeZ);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSuggestGroupSizeTracing(ze_kernel_handle_t hKernel,
uint32_t globalSizeX,
uint32_t globalSizeY,
uint32_t globalSizeZ,
uint32_t *groupSizeX,
uint32_t *groupSizeY,
uint32_t *groupSizeZ) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSuggestGroupSize,
hKernel,
globalSizeX,
globalSizeY,
globalSizeZ,
groupSizeX,
groupSizeY,
groupSizeZ);
ze_kernel_suggest_group_size_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.pglobalSizeX = &globalSizeX;
tracerParams.pglobalSizeY = &globalSizeY;
tracerParams.pglobalSizeZ = &globalSizeZ;
tracerParams.pgroupSizeX = &groupSizeX;
tracerParams.pgroupSizeY = &groupSizeY;
tracerParams.pgroupSizeZ = &groupSizeZ;
L0::APITracerCallbackDataImp<ze_pfnKernelSuggestGroupSizeCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelSuggestGroupSizeCb_t, Kernel, pfnSuggestGroupSizeCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSuggestGroupSize,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.pglobalSizeX,
*tracerParams.pglobalSizeY,
*tracerParams.pglobalSizeZ,
*tracerParams.pgroupSizeX,
*tracerParams.pgroupSizeY,
*tracerParams.pgroupSizeZ);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSetArgumentValueTracing(ze_kernel_handle_t hKernel,
uint32_t argIndex,
size_t argSize,
const void *pArgValue) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSetArgumentValue,
hKernel,
argIndex,
argSize,
pArgValue);
ze_kernel_set_argument_value_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.pargIndex = &argIndex;
tracerParams.pargSize = &argSize;
tracerParams.ppArgValue = &pArgValue;
L0::APITracerCallbackDataImp<ze_pfnKernelSetArgumentValueCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelSetArgumentValueCb_t, Kernel, pfnSetArgumentValueCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSetArgumentValue,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.pargIndex,
*tracerParams.pargSize,
*tracerParams.ppArgValue);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelGetPropertiesTracing(ze_kernel_handle_t hKernel,
ze_kernel_properties_t *pKernelProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnGetProperties,
hKernel,
pKernelProperties);
ze_kernel_get_properties_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.ppKernelProperties = &pKernelProperties;
L0::APITracerCallbackDataImp<ze_pfnKernelGetPropertiesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelGetPropertiesCb_t, Kernel, pfnGetPropertiesCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnGetProperties,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.ppKernelProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendLaunchKernelTracing(ze_command_list_handle_t hCommandList,
ze_kernel_handle_t hKernel,
const ze_group_count_t *pLaunchFuncArgs,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchKernel,
hCommandList,
hKernel,
pLaunchFuncArgs,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_launch_kernel_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phKernel = &hKernel;
tracerParams.ppLaunchFuncArgs = &pLaunchFuncArgs;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendLaunchKernelCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendLaunchKernelCb_t,
CommandList,
pfnAppendLaunchKernelCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchKernel,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phKernel,
*tracerParams.ppLaunchFuncArgs,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendLaunchKernelIndirectTracing(ze_command_list_handle_t hCommandList,
ze_kernel_handle_t hKernel,
const ze_group_count_t *pLaunchArgumentsBuffer,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchKernelIndirect,
hCommandList,
hKernel,
pLaunchArgumentsBuffer,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_launch_kernel_indirect_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phKernel = &hKernel;
tracerParams.ppLaunchArgumentsBuffer = &pLaunchArgumentsBuffer;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendLaunchKernelIndirectCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendLaunchKernelIndirectCb_t,
CommandList,
pfnAppendLaunchKernelIndirectCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchKernelIndirect,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phKernel,
*tracerParams.ppLaunchArgumentsBuffer,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendLaunchMultipleKernelsIndirectTracing(ze_command_list_handle_t hCommandList,
uint32_t numKernels,
ze_kernel_handle_t *phKernels,
const uint32_t *pCountBuffer,
const ze_group_count_t *pLaunchArgumentsBuffer,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchMultipleKernelsIndirect,
hCommandList,
numKernels,
phKernels,
pCountBuffer,
pLaunchArgumentsBuffer,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_launch_multiple_kernels_indirect_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pnumKernels = &numKernels;
tracerParams.pphKernels = &phKernels;
tracerParams.ppCountBuffer = &pCountBuffer;
tracerParams.ppLaunchArgumentsBuffer = &pLaunchArgumentsBuffer;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t,
CommandList,
pfnAppendLaunchMultipleKernelsIndirectCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchMultipleKernelsIndirect,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pnumKernels,
*tracerParams.pphKernels,
*tracerParams.ppCountBuffer,
*tracerParams.ppLaunchArgumentsBuffer,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendLaunchCooperativeKernelTracing(ze_command_list_handle_t hCommandList,
ze_kernel_handle_t hKernel,
const ze_group_count_t *pLaunchFuncArgs,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchCooperativeKernel,
hCommandList,
hKernel,
pLaunchFuncArgs,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_launch_cooperative_kernel_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phKernel = &hKernel;
tracerParams.ppLaunchFuncArgs = &pLaunchFuncArgs;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendLaunchCooperativeKernelCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendLaunchCooperativeKernelCb_t,
CommandList, pfnAppendLaunchCooperativeKernelCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendLaunchCooperativeKernel,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phKernel,
*tracerParams.ppLaunchFuncArgs,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeModuleGetKernelNamesTracing(ze_module_handle_t hModule,
uint32_t *pCount,
const char **pNames) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Module.pfnGetKernelNames,
hModule,
pCount,
pNames);
ze_module_get_kernel_names_params_t tracerParams;
tracerParams.phModule = &hModule;
tracerParams.ppCount = &pCount;
tracerParams.ppNames = &pNames;
L0::APITracerCallbackDataImp<ze_pfnModuleGetKernelNamesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnModuleGetKernelNamesCb_t, Module, pfnGetKernelNamesCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Module.pfnGetKernelNames,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phModule,
*tracerParams.ppCount,
*tracerParams.ppNames);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSuggestMaxCooperativeGroupCountTracing(ze_kernel_handle_t hKernel,
uint32_t *totalGroupCount) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSuggestMaxCooperativeGroupCount,
hKernel,
totalGroupCount);
ze_kernel_suggest_max_cooperative_group_count_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.ptotalGroupCount = &totalGroupCount;
L0::APITracerCallbackDataImp<ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t,
Kernel, pfnSuggestMaxCooperativeGroupCountCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSuggestMaxCooperativeGroupCount,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.ptotalGroupCount);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelGetIndirectAccessTracing(ze_kernel_handle_t hKernel,
ze_kernel_indirect_access_flags_t *pFlags) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnGetIndirectAccess,
hKernel,
pFlags);
ze_kernel_get_indirect_access_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.ppFlags = &pFlags;
L0::APITracerCallbackDataImp<ze_pfnKernelGetIndirectAccessCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelGetIndirectAccessCb_t,
Kernel, pfnGetIndirectAccessCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnGetIndirectAccess,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.ppFlags);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelGetNameTracing(ze_kernel_handle_t hKernel,
size_t *pSize,
char *pName) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnGetName,
hKernel,
pSize,
pName);
ze_kernel_get_name_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.ppSize = &pSize;
tracerParams.ppName = &pName;
L0::APITracerCallbackDataImp<ze_pfnKernelGetNameCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelGetNameCb_t,
Kernel, pfnGetNameCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnGetName,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.ppSize,
*tracerParams.ppName);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelGetSourceAttributesTracing(ze_kernel_handle_t hKernel,
uint32_t *pSize,
char **pString) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnGetSourceAttributes,
hKernel,
pSize,
pString);
ze_kernel_get_source_attributes_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.ppSize = &pSize;
tracerParams.ppString = &pString;
L0::APITracerCallbackDataImp<ze_pfnKernelGetSourceAttributesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelGetSourceAttributesCb_t,
Kernel, pfnGetSourceAttributesCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnGetSourceAttributes,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.ppSize,
*tracerParams.ppString);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSetIndirectAccessTracing(ze_kernel_handle_t hKernel,
ze_kernel_indirect_access_flags_t flags) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSetIndirectAccess,
hKernel,
flags);
ze_kernel_set_indirect_access_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.pflags = &flags;
L0::APITracerCallbackDataImp<ze_pfnKernelSetIndirectAccessCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnKernelSetIndirectAccessCb_t,
Kernel, pfnSetIndirectAccessCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSetIndirectAccess,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.pflags);
}