From 373ef608bc29a7590d7f71ac3465ce356a51fec9 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Tue, 27 Feb 2024 12:03:03 +0000 Subject: [PATCH] refactor: unify calculating max group size between OCL and L0 Signed-off-by: Mateusz Jablonski --- opencl/source/kernel/kernel.cpp | 7 ++----- opencl/test/unit_test/kernel/kernel_tests.cpp | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index 67fa4e102d..61adfbbe2d 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -2203,13 +2203,10 @@ bool Kernel::areMultipleSubDevicesInContext() const { void Kernel::reconfigureKernel() { const auto &kernelDescriptor = kernelInfo.kernelDescriptor; - if (kernelDescriptor.kernelAttributes.numGrfRequired == GrfConfig::largeGrfNumber && - kernelDescriptor.kernelAttributes.simdSize != 32) { - this->maxKernelWorkGroupSize >>= 1; - } const auto &gfxCoreHelper = this->getGfxCoreHelper(); + auto maxWorkGroupSize = gfxCoreHelper.calculateMaxWorkGroupSize(kernelDescriptor, this->maxKernelWorkGroupSize); bool isLocalIdsGeneratedByHw = false; // if local ids generated by runtime then more work groups available - auto maxWorkGroupSize = static_cast(kernelInfo.getMaxRequiredWorkGroupSize(getMaxKernelWorkGroupSize())); + maxWorkGroupSize = static_cast(kernelInfo.getMaxRequiredWorkGroupSize(maxWorkGroupSize)); this->maxKernelWorkGroupSize = gfxCoreHelper.adjustMaxWorkGroupSize(kernelDescriptor.kernelAttributes.numGrfRequired, kernelDescriptor.kernelAttributes.simdSize, isLocalIdsGeneratedByHw, maxWorkGroupSize); diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index 4664753d78..84f2efb682 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -3287,7 +3287,7 @@ struct KernelLargeGrfTests : Test { SPatchExecutionEnvironment executionEnvironment = {}; }; -HWTEST_F(KernelLargeGrfTests, GivenLargeGrfAndSimdSizeWhenGettingMaxWorkGroupSizeThenCorrectValueReturned) { +HWTEST2_F(KernelLargeGrfTests, GivenLargeGrfAndSimdSizeWhenGettingMaxWorkGroupSizeThenCorrectValueReturned, IsAtLeastXeHpCore) { pKernelInfo->kernelDescriptor.kernelAttributes.simdSize = 16; pKernelInfo->kernelDescriptor.kernelAttributes.crossThreadDataSize = 4; pKernelInfo->kernelDescriptor.payloadMappings.implicitArgs.maxWorkGroupSize = 0;