diff --git a/level_zero/api/tools/zet_module.cpp b/level_zero/api/tools/zet_module.cpp index 29da415786..3b6d3434c6 100644 --- a/level_zero/api/tools/zet_module.cpp +++ b/level_zero/api/tools/zet_module.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 Intel Corporation + * Copyright (C) 2020-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -21,5 +21,5 @@ ZE_APIEXPORT ze_result_t ZE_APICALL zetKernelGetProfileInfo( zet_kernel_handle_t hKernel, zet_profile_properties_t *pProfileProperties) { - return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; + return L0::Kernel::fromHandle(hKernel)->getProfileInfo(pProfileProperties); } diff --git a/level_zero/core/source/kernel/kernel.h b/level_zero/core/source/kernel/kernel.h index a1a90a2ff6..2b1a3b9967 100644 --- a/level_zero/core/source/kernel/kernel.h +++ b/level_zero/core/source/kernel/kernel.h @@ -13,6 +13,7 @@ #include "shared/source/unified_memory/unified_memory.h" #include +#include #include #include @@ -118,6 +119,8 @@ struct Kernel : _ze_kernel_handle_t, virtual NEO::DispatchKernelEncoderI { virtual ze_result_t suggestMaxCooperativeGroupCount(uint32_t *totalGroupCount) = 0; virtual ze_result_t setCacheConfig(ze_cache_config_flags_t flags) = 0; + virtual ze_result_t getProfileInfo(zet_profile_properties_t *pProfileProperties) = 0; + virtual const KernelImmutableData *getImmutableData() const = 0; virtual std::unique_ptr clone() const = 0; diff --git a/level_zero/core/source/kernel/kernel_imp.h b/level_zero/core/source/kernel/kernel_imp.h index fa6649a513..a2d7bda37c 100644 --- a/level_zero/core/source/kernel/kernel_imp.h +++ b/level_zero/core/source/kernel/kernel_imp.h @@ -124,6 +124,12 @@ struct KernelImp : Kernel { ze_result_t setCacheConfig(ze_cache_config_flags_t flags) override; + ze_result_t getProfileInfo(zet_profile_properties_t *pProfileProperties) override { + pProfileProperties->flags = 0; + pProfileProperties->numTokens = 0; + return ZE_RESULT_SUCCESS; + } + bool hasIndirectAccess() { return kernelHasIndirectAccess; } diff --git a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp index c0adea09f5..c3be94888b 100644 --- a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp +++ b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp @@ -705,6 +705,19 @@ HWTEST_F(KernelPropertiesTests, givenValidKernelThenPropertiesAreRetrieved) { sizeof(kernelProperties.uuid.mid))); } +HWTEST_F(KernelPropertiesTests, givenValidKernelThenProfilePropertiesAreRetrieved) { + zet_profile_properties_t kernelProfileProperties = {}; + + kernelProfileProperties.flags = std::numeric_limits::max(); + kernelProfileProperties.numTokens = std::numeric_limits::max(); + + ze_result_t res = kernel->getProfileInfo(&kernelProfileProperties); + EXPECT_EQ(ZE_RESULT_SUCCESS, res); + + EXPECT_EQ(0U, kernelProfileProperties.flags); + EXPECT_EQ(0U, kernelProfileProperties.numTokens); +} + HWTEST_F(KernelPropertiesTests, whenSettingValidKernelIndirectAccessFlagsThenFlagsAreSetCorrectly) { UnifiedMemoryControls unifiedMemoryControls = kernel->getUnifiedMemoryControls(); EXPECT_EQ(false, unifiedMemoryControls.indirectDeviceAllocationsAllowed);