From 0e47bcde1d1e3697db13a3dccecc9d7afe8b9555 Mon Sep 17 00:00:00 2001 From: Kamil Kopryk Date: Tue, 15 Nov 2022 12:33:37 +0000 Subject: [PATCH] Move ClCoreHelper ownership to RootDeviceEnvironment 4/n Related-To: NEO-6853 Signed-off-by: Kamil Kopryk Use RootDeviceEnvironment getHelper for - isSupportedKernelThreadArbitrationPolicy - getSupportedThreadArbitrationPolicies --- opencl/source/cl_device/cl_device_caps.cpp | 4 +- opencl/source/kernel/kernel.cpp | 5 +-- .../api/cl_get_device_info_tests.inl | 4 +- .../api/cl_set_kernel_exec_info_tests.inl | 45 +++++++++---------- .../command_queue/enqueue_handler_tests.cpp | 8 ++-- opencl/test/unit_test/kernel/kernel_tests.cpp | 8 ++-- 6 files changed, 36 insertions(+), 38 deletions(-) diff --git a/opencl/source/cl_device/cl_device_caps.cpp b/opencl/source/cl_device/cl_device_caps.cpp index c4141b2b04..55e7ab989c 100644 --- a/opencl/source/cl_device/cl_device_caps.cpp +++ b/opencl/source/cl_device/cl_device_caps.cpp @@ -381,8 +381,8 @@ void ClDevice::initializeCaps() { getQueueFamilyName(properties.name, engineGroup.engineGroupType); deviceInfo.queueFamilyProperties.push_back(properties); } - auto &clHwHelper = NEO::ClHwHelper::get(hwInfo.platform.eRenderCoreFamily); - const std::vector &supportedThreadArbitrationPolicies = clHwHelper.getSupportedThreadArbitrationPolicies(); + auto &clCoreHelper = this->getRootDeviceEnvironment().getHelper(); + const std::vector &supportedThreadArbitrationPolicies = clCoreHelper.getSupportedThreadArbitrationPolicies(); deviceInfo.supportedThreadArbitrationPolicies.resize(supportedThreadArbitrationPolicies.size()); for (size_t policy = 0u; policy < supportedThreadArbitrationPolicies.size(); policy++) { deviceInfo.supportedThreadArbitrationPolicies[policy] = supportedThreadArbitrationPolicies[policy]; diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index 90de81310f..af61524cd0 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -2278,10 +2278,9 @@ void Kernel::updateAuxTranslationRequired() { } int Kernel::setKernelThreadArbitrationPolicy(uint32_t policy) { - auto &hwInfo = clDevice.getHardwareInfo(); - auto &hwHelper = NEO::ClHwHelper::get(hwInfo.platform.eRenderCoreFamily); + auto &clCoreHelper = clDevice.getRootDeviceEnvironment().getHelper(); auto &threadArbitrationPolicy = const_cast(getDescriptor().kernelAttributes.threadArbitrationPolicy); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { threadArbitrationPolicy = ThreadArbitrationPolicy::NotPresent; return CL_INVALID_DEVICE; } else if (policy == CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL) { diff --git a/opencl/test/unit_test/api/cl_get_device_info_tests.inl b/opencl/test/unit_test/api/cl_get_device_info_tests.inl index 8e7e18955d..ef305201a7 100644 --- a/opencl/test/unit_test/api/cl_get_device_info_tests.inl +++ b/opencl/test/unit_test/api/cl_get_device_info_tests.inl @@ -337,8 +337,8 @@ HWTEST2_F(clGetDeviceInfoTests, givenClDeviceSupportedThreadArbitrationPolicyInt } HWTEST_F(clGetDeviceInfoTests, givenClDeviceSupportedThreadArbitrationPolicyIntelWhenThreadArbitrationPolicyChangeNotSupportedAndCallClGetDeviceInfoThenParamRetSizeIsZero) { - auto &hwHelper = NEO::ClHwHelper::get(defaultHwInfo->platform.eRenderCoreFamily); - if (hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = this->pDevice->getRootDeviceEnvironment().getHelper(); + if (clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } cl_device_info paramName = 0; diff --git a/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl b/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl index bf47a0fed3..04b347c59e 100644 --- a/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl +++ b/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl @@ -53,7 +53,7 @@ class KernelExecInfoFixture : public ApiFixture<> { cl_device_svm_capabilities svmCapabilities = 0; }; -typedef Test clSetKernelExecInfoTests; +using clSetKernelExecInfoTests = Test; namespace ULT { @@ -68,8 +68,8 @@ TEST_F(clSetKernelExecInfoTests, GivenNullKernelWhenSettingAdditionalKernelInfoT } TEST_F(clSetKernelExecInfoTests, GivenDeviceNotSupportingSvmWhenSettingKernelExecInfoThenErrorIsReturnedOnSvmRelatedParams) { - auto &hwHelper = NEO::ClHwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pDevice->getRootDeviceEnvironment().getHelper(); + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } auto hwInfo = executionEnvironment->rootDeviceEnvironments[ApiFixture::testedRootDeviceIndex]->getMutableHardwareInfo(); @@ -304,54 +304,51 @@ TEST_F(clSetKernelExecInfoTests, givenNonExistingParamNameWithValuesWhenSettingA } HWTEST_F(clSetKernelExecInfoTests, givenKernelExecInfoThreadArbitrationPolicyWhenSettingAdditionalKernelInfoThenSuccessIsReturned) { - auto &hwHelper = NEO::ClHwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pDevice->getRootDeviceEnvironment().getHelper(); + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } uint32_t newThreadArbitrationPolicy = CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL; size_t ptrSizeInBytes = sizeof(uint32_t *); retVal = clSetKernelExecInfo( - pMockMultiDeviceKernel, // cl_kernel kernel - CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, // cl_kernel_exec_info param_name - ptrSizeInBytes, // size_t param_value_size - &newThreadArbitrationPolicy // const void *param_value - ); + pMockMultiDeviceKernel, + CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, + ptrSizeInBytes, + &newThreadArbitrationPolicy); EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_EQ(getNewKernelArbitrationPolicy(newThreadArbitrationPolicy), pMockKernel->getDescriptor().kernelAttributes.threadArbitrationPolicy); } HWTEST_F(clSetKernelExecInfoTests, givenKernelExecInfoThreadArbitrationPolicyWhenNotSupportedAndSettingAdditionalKernelInfoThenClInvalidDeviceIsReturned) { - auto &hwHelper = NEO::ClHwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pDevice->getRootDeviceEnvironment().getHelper(); + if (clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } uint32_t newThreadArbitrationPolicy = CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL; size_t ptrSizeInBytes = sizeof(uint32_t *); retVal = clSetKernelExecInfo( - pMockMultiDeviceKernel, // cl_kernel kernel - CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, // cl_kernel_exec_info param_name - ptrSizeInBytes, // size_t param_value_size - &newThreadArbitrationPolicy // const void *param_value - ); + pMockMultiDeviceKernel, + CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, + ptrSizeInBytes, + &newThreadArbitrationPolicy); EXPECT_EQ(CL_INVALID_DEVICE, retVal); } HWTEST_F(clSetKernelExecInfoTests, givenInvalidThreadArbitrationPolicyWhenSettingAdditionalKernelInfoThenClInvalidValueIsReturned) { - auto &hwHelper = NEO::ClHwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pDevice->getRootDeviceEnvironment().getHelper(); + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } uint32_t invalidThreadArbitrationPolicy = 0; size_t ptrSizeInBytes = 1 * sizeof(uint32_t *); retVal = clSetKernelExecInfo( - pMockMultiDeviceKernel, // cl_kernel kernel - CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, // cl_kernel_exec_info param_name - ptrSizeInBytes, // size_t param_value_size - &invalidThreadArbitrationPolicy // const void *param_value - ); + pMockMultiDeviceKernel, + CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_INTEL, + ptrSizeInBytes, + &invalidThreadArbitrationPolicy); EXPECT_EQ(CL_INVALID_VALUE, retVal); } diff --git a/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp index 49dc9bf2fe..91e2955cbc 100644 --- a/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp @@ -586,8 +586,8 @@ HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenSubCaptureIsOnThenActivateSu HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenClSetKernelExecInfoAlreadySetKernelThreadArbitrationPolicyThenRequiredThreadArbitrationPolicyIsSetProperly) { REQUIRE_SVM_OR_SKIP(pClDevice); - auto &hwHelper = NEO::ClHwHelper::get(pClDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pClDevice->getRootDeviceEnvironment().getHelper(); + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } DebugManagerStateRestore stateRestore; @@ -623,8 +623,8 @@ HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenClSetKernelExecInfoAlreadySe } HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenNotSupportedPolicyChangeThenRequiredThreadArbitrationPolicyNotChangedAndIsSetAsDefault) { - auto &hwHelper = NEO::ClHwHelper::get(pClDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + auto &clCoreHelper = pClDevice->getRootDeviceEnvironment().getHelper(); + if (clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } DebugManagerStateRestore stateRestore; diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index 0a42a1807d..91e12ebb63 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -2834,11 +2834,13 @@ TEST(KernelTest, givenDefaultKernelWhenItIsCreatedThenItReportsStatelessWrites) } TEST(KernelTest, givenPolicyWhensetKernelThreadArbitrationPolicyThenExpectedClValueIsReturned) { - auto &hwHelper = NEO::ClHwHelper::get(defaultHwInfo->platform.eRenderCoreFamily); - if (!hwHelper.isSupportedKernelThreadArbitrationPolicy()) { + + auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(defaultHwInfo.get())); + auto &clCoreHelper = device->getRootDeviceEnvironment().getHelper(); + if (!clCoreHelper.isSupportedKernelThreadArbitrationPolicy()) { GTEST_SKIP(); } - auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(defaultHwInfo.get())); + MockKernelWithInternals kernel(*device); EXPECT_EQ(CL_SUCCESS, kernel.mockKernel->setKernelThreadArbitrationPolicy(CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL)); EXPECT_EQ(CL_SUCCESS, kernel.mockKernel->setKernelThreadArbitrationPolicy(CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_OLDEST_FIRST_INTEL));