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

409 lines
19 KiB
C++

/*
* Copyright (C) 2020-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "level_zero/experimental/source/tracing/tracing_imp.h"
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGet_Tracing(ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_device_handle_t *phDevices) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGet,
hDriver,
pCount,
phDevices);
ze_device_get_params_t tracerParams;
tracerParams.phDriver = &hDriver;
tracerParams.ppCount = &pCount;
tracerParams.pphDevices = &phDevices;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCb_t, Device, pfnGetCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGet,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDriver,
*tracerParams.ppCount,
*tracerParams.pphDevices);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetProperties_Tracing(ze_device_handle_t hDevice,
ze_device_properties_t *pDeviceProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetProperties,
hDevice,
pDeviceProperties);
ze_device_get_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppDeviceProperties = &pDeviceProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetPropertiesCb_t, Device, pfnGetPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppDeviceProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetComputeProperties_Tracing(ze_device_handle_t hDevice,
ze_device_compute_properties_t *pComputeProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetComputeProperties,
hDevice,
pComputeProperties);
ze_device_get_compute_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppComputeProperties = &pComputeProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetComputePropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetComputePropertiesCb_t, Device, pfnGetComputePropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetComputeProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppComputeProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetMemoryProperties_Tracing(ze_device_handle_t hDevice,
uint32_t *pCount,
ze_device_memory_properties_t *pMemProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryProperties,
hDevice,
pCount,
pMemProperties);
ze_device_get_memory_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppCount = &pCount;
tracerParams.ppMemProperties = &pMemProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetMemoryPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetMemoryPropertiesCb_t, Device, pfnGetMemoryPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppCount,
*tracerParams.ppMemProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetCacheProperties_Tracing(ze_device_handle_t hDevice,
uint32_t *pCount,
ze_device_cache_properties_t *pCacheProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetCacheProperties,
hDevice,
pCount,
pCacheProperties);
ze_device_get_cache_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppCount = &pCount;
tracerParams.ppCacheProperties = &pCacheProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCachePropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCachePropertiesCb_t, Device, pfnGetCachePropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetCacheProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppCount,
*tracerParams.ppCacheProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetImageProperties_Tracing(ze_device_handle_t hDevice,
ze_device_image_properties_t *pImageProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetImageProperties,
hDevice,
pImageProperties);
ze_device_get_image_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppImageProperties = &pImageProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetImagePropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetImagePropertiesCb_t, Device, pfnGetImagePropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetImageProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppImageProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetSubDevices_Tracing(ze_device_handle_t hDevice,
uint32_t *pCount,
ze_device_handle_t *phSubdevices) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetSubDevices,
hDevice,
pCount,
phSubdevices);
ze_device_get_sub_devices_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppCount = &pCount;
tracerParams.pphSubdevices = &phSubdevices;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetSubDevicesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetSubDevicesCb_t, Device, pfnGetSubDevicesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetSubDevices,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppCount,
*tracerParams.pphSubdevices);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetP2PProperties_Tracing(ze_device_handle_t hDevice,
ze_device_handle_t hPeerDevice,
ze_device_p2p_properties_t *pP2PProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetP2PProperties,
hDevice,
hPeerDevice,
pP2PProperties);
ze_device_get_p2_p_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.phPeerDevice = &hPeerDevice;
tracerParams.ppP2PProperties = &pP2PProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetP2PPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetP2PPropertiesCb_t, Device, pfnGetP2PPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetP2PProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.phPeerDevice,
*tracerParams.ppP2PProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceCanAccessPeer_Tracing(ze_device_handle_t hDevice,
ze_device_handle_t hPeerDevice,
ze_bool_t *value) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnCanAccessPeer,
hDevice,
hPeerDevice,
value);
ze_device_can_access_peer_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.phPeerDevice = &hPeerDevice;
tracerParams.pvalue = &value;
L0::APITracerCallbackDataImp<ze_pfnDeviceCanAccessPeerCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceCanAccessPeerCb_t, Device, pfnCanAccessPeerCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnCanAccessPeer,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.phPeerDevice,
*tracerParams.pvalue);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeKernelSetCacheConfig_Tracing(ze_kernel_handle_t hKernel,
ze_cache_config_flags_t flags) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSetCacheConfig,
hKernel,
flags);
ze_kernel_set_cache_config_params_t tracerParams;
tracerParams.phKernel = &hKernel;
tracerParams.pflags = &flags;
L0::APITracerCallbackDataImp<ze_pfnKernelSetCacheConfigCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnKernelSetCacheConfigCb_t, Kernel, pfnSetCacheConfigCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSetCacheConfig,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phKernel,
*tracerParams.pflags);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetMemoryAccessProperties_Tracing(ze_device_handle_t hDevice,
ze_device_memory_access_properties_t *pMemAccessProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryAccessProperties,
hDevice,
pMemAccessProperties);
ze_device_get_memory_access_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppMemAccessProperties = &pMemAccessProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetMemoryAccessPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetMemoryAccessPropertiesCb_t, Device,
pfnGetMemoryAccessPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryAccessProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppMemAccessProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetModuleProperties_Tracing(ze_device_handle_t hDevice,
ze_device_module_properties_t *pModuleProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetModuleProperties,
hDevice,
pModuleProperties);
ze_device_get_module_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppModuleProperties = &pModuleProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetModulePropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetModulePropertiesCb_t, Device, pfnGetModulePropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetModuleProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppModuleProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetCommandQueueGroupProperties_Tracing(ze_device_handle_t hDevice,
uint32_t *pCount,
ze_command_queue_group_properties_t *pCommandQueueGroupProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetCommandQueueGroupProperties,
hDevice,
pCount,
pCommandQueueGroupProperties);
ze_device_get_command_queue_group_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppCount = &pCount;
tracerParams.ppCommandQueueGroupProperties = &pCommandQueueGroupProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t, Device, pfnGetCommandQueueGroupPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetCommandQueueGroupProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppCount,
*tracerParams.ppCommandQueueGroupProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetExternalMemoryProperties_Tracing(ze_device_handle_t hDevice,
ze_device_external_memory_properties_t *pExternalMemoryProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetExternalMemoryProperties,
hDevice,
pExternalMemoryProperties);
ze_device_get_external_memory_properties_params_t tracerParams;
tracerParams.phDevice = &hDevice;
tracerParams.ppExternalMemoryProperties = &pExternalMemoryProperties;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetExternalMemoryPropertiesCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetExternalMemoryPropertiesCb_t, Device, pfnGetExternalMemoryPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetExternalMemoryProperties,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice,
*tracerParams.ppExternalMemoryProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDeviceGetStatus_Tracing(ze_device_handle_t hDevice) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetStatus,
hDevice);
ze_device_get_status_params_t tracerParams;
tracerParams.phDevice = &hDevice;
L0::APITracerCallbackDataImp<ze_pfnDeviceGetStatusCb_t> api_callbackData;
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetStatusCb_t, Device, pfnGetStatusCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetStatus,
&tracerParams,
api_callbackData.apiOrdinal,
api_callbackData.prologCallbacks,
api_callbackData.epilogCallbacks,
*tracerParams.phDevice);
}