From 7be2ac84d3fd99b76383f163df4d0549dd522fd8 Mon Sep 17 00:00:00 2001 From: Kacper Nowak Date: Thu, 6 Apr 2023 21:44:42 +0000 Subject: [PATCH] Refactor(ocl): refactor OCL Kernel and MultiDeviceKernel class 1/n - For static create() method for Kernel and MultiDeviceKernel force errcodeRet parameter to be passed via reference (instead of a pointer) - Move part of kernel's creation logic to initialize() method Signed-off-by: Kacper Nowak --- opencl/source/api/api.cpp | 6 +- opencl/source/built_ins/built_ins.inl | 9 ++- .../built_ins/builtins_dispatch_builder.h | 2 +- opencl/source/kernel/kernel.cpp | 7 ++ opencl/source/kernel/kernel.h | 17 +--- opencl/source/kernel/multi_device_kernel.h | 2 +- .../accelerators/media_image_arg_tests.cpp | 2 +- ...cl_get_kernel_sub_group_info_khr_tests.inl | 5 +- .../cl_get_kernel_sub_group_info_tests.inl | 4 +- .../cl_set_kernel_arg_svm_pointer_tests.inl | 12 ++- .../api/cl_set_kernel_exec_info_tests.inl | 8 +- ...aub_scratch_space_tests_xehp_and_later.cpp | 3 +- .../run_kernel_aub_tests_skl.cpp | 12 ++- .../system_memfence_aub_tests_xe_hpc_core.cpp | 5 +- ...less_compression_aub_tests_xe_hpc_core.cpp | 5 +- .../enqueue_debug_kernel_tests.cpp | 2 +- .../command_queue/enqueue_kernel_1_tests.cpp | 14 ++-- .../command_queue/enqueue_svm_tests.cpp | 4 +- .../get_size_required_image_tests.cpp | 8 +- ...and_stream_receiver_flush_task_4_tests.cpp | 3 +- .../context/driver_diagnostics_tests.h | 4 +- .../fixtures/hello_world_kernel_fixture.h | 4 +- .../unit_test/fixtures/kernel_arg_fixture.cpp | 2 +- .../unit_test/fixtures/media_kernel_fixture.h | 4 +- .../fixtures/simple_arg_kernel_fixture.h | 16 ++-- .../hardware_commands_helper_tests.cpp | 3 +- .../kernel/kernel_arg_buffer_tests.cpp | 6 +- .../kernel/kernel_is_patched_tests.cpp | 4 +- opencl/test/unit_test/kernel/kernel_tests.cpp | 80 ++++++------------- .../mem_obj/buffer_pool_alloc_tests.cpp | 2 +- .../mem_obj/buffer_set_arg_tests.cpp | 2 +- .../unit_test/mem_obj/image_set_arg_tests.cpp | 4 +- .../unit_test/program/program_nonuniform.cpp | 6 +- .../test/unit_test/program/program_tests.cpp | 5 +- .../sampler/sampler_set_arg_tests.cpp | 2 +- .../command_stream_receiver_hw_tests_pvc.cpp | 2 +- 36 files changed, 132 insertions(+), 144 deletions(-) diff --git a/opencl/source/api/api.cpp b/opencl/source/api/api.cpp index 459781d5bf..f44794b48a 100644 --- a/opencl/source/api/api.cpp +++ b/opencl/source/api/api.cpp @@ -1788,7 +1788,7 @@ cl_kernel CL_API_CALL clCreateKernel(cl_program clProgram, kernel = MultiDeviceKernel::create( pProgram, kernelInfos, - &retVal); + retVal); DBG_LOG_INPUTS("kernel", kernel); } while (false); @@ -1835,7 +1835,7 @@ cl_int CL_API_CALL clCreateKernelsInProgram(cl_program clProgram, kernels[i] = MultiDeviceKernel::create( pProgram, kernelInfos, - &retVal); + retVal); if (nullptr == kernels[i]) { UNRECOVERABLE_IF(CL_SUCCESS == retVal); for (unsigned int createdIdx = 0; createdIdx < i; ++createdIdx) { @@ -5731,7 +5731,7 @@ cl_kernel CL_API_CALL clCloneKernel(cl_kernel sourceKernel, if (CL_SUCCESS == retVal) { pClonedMultiDeviceKernel = MultiDeviceKernel::create(pSourceMultiDeviceKernel->getProgram(), pSourceMultiDeviceKernel->getKernelInfos(), - &retVal); + retVal); UNRECOVERABLE_IF((pClonedMultiDeviceKernel == nullptr) || (retVal != CL_SUCCESS)); retVal = pClonedMultiDeviceKernel->cloneKernel(pSourceMultiDeviceKernel); diff --git a/opencl/source/built_ins/built_ins.inl b/opencl/source/built_ins/built_ins.inl index feb39c6735..1721ebc60b 100644 --- a/opencl/source/built_ins/built_ins.inl +++ b/opencl/source/built_ins/built_ins.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -22,10 +22,13 @@ void BuiltInOp::resizeKernelInstances(size_t size) convertToAuxKernel.reserve(size); for (size_t i = convertToNonAuxKernel.size(); i < size; i++) { - auto clonedNonAuxToAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), clDevice, nullptr); + cl_int retVal{CL_SUCCESS}; + auto clonedNonAuxToAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), clDevice, retVal); + UNRECOVERABLE_IF(CL_SUCCESS != retVal); clonedNonAuxToAuxKernel->setAuxTranslationDirection(AuxTranslationDirection::NonAuxToAux); - auto clonedAuxToNonAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), clDevice, nullptr); + auto clonedAuxToNonAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), clDevice, retVal); + UNRECOVERABLE_IF(CL_SUCCESS != retVal); clonedAuxToNonAuxKernel->setAuxTranslationDirection(AuxTranslationDirection::AuxToNonAux); clonedNonAuxToAuxKernel->cloneKernel(baseKernel); diff --git a/opencl/source/built_ins/builtins_dispatch_builder.h b/opencl/source/built_ins/builtins_dispatch_builder.h index ce68e931ac..d7ac7ca2ef 100644 --- a/opencl/source/built_ins/builtins_dispatch_builder.h +++ b/opencl/source/built_ins/builtins_dispatch_builder.h @@ -93,7 +93,7 @@ class BuiltinDispatchInfoBuilder { KernelInfoContainer kernelInfos; kernelInfos.resize(rootDeviceIndex + 1); kernelInfos[rootDeviceIndex] = kernelInfo; - kernelDst = MultiDeviceKernel::create(prog.get(), kernelInfos, &err); + kernelDst = MultiDeviceKernel::create(prog.get(), kernelInfos, err); kernelDst->getKernel(rootDeviceIndex)->isBuiltIn = true; usedKernels.push_back(std::unique_ptr(kernelDst)); grabKernels(std::forward(kernelsDesc)...); diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index abec1ef2ab..0e20c377f6 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -161,6 +161,13 @@ cl_int Kernel::initialize() { auto maxSimdSize = kernelInfo.getMaxSimdSize(); const auto &heapInfo = kernelInfo.heapInfo; + auto localMemSize = static_cast(clDevice.getDevice().getDeviceInfo().localMemSize); + auto slmTotalSize = this->getSlmTotalSize(); + if (slmTotalSize > 0 && localMemSize < slmTotalSize) { + PRINT_DEBUG_STRING(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "Size of SLM (%u) larger than available (%u)\n", slmTotalSize, localMemSize); + return CL_OUT_OF_RESOURCES; + } + if (maxSimdSize != 1 && maxSimdSize < gfxCoreHelper.getMinimalSIMDSize()) { return CL_INVALID_KERNEL; } diff --git a/opencl/source/kernel/kernel.h b/opencl/source/kernel/kernel.h index f4905a757c..94f100c8fc 100644 --- a/opencl/source/kernel/kernel.h +++ b/opencl/source/kernel/kernel.h @@ -91,7 +91,7 @@ class Kernel : public ReferenceTrackedObject { const void *argVal); template - static kernel_t *create(program_t *program, const KernelInfo &kernelInfo, ClDevice &clDevice, cl_int *errcodeRet) { + static kernel_t *create(program_t *program, const KernelInfo &kernelInfo, ClDevice &clDevice, cl_int &errcodeRet) { cl_int retVal; kernel_t *pKernel = nullptr; @@ -102,20 +102,7 @@ class Kernel : public ReferenceTrackedObject { delete pKernel; pKernel = nullptr; } - - if (pKernel) { - auto localMemSize = static_cast(clDevice.getDevice().getDeviceInfo().localMemSize); - auto slmTotalSize = pKernel->getSlmTotalSize(); - - if (slmTotalSize > 0 && localMemSize < slmTotalSize) { - PRINT_DEBUG_STRING(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "Size of SLM (%u) larger than available (%u)\n", slmTotalSize, localMemSize); - retVal = CL_OUT_OF_RESOURCES; - } - } - - if (errcodeRet) { - *errcodeRet = retVal; - } + errcodeRet = retVal; if (fileLoggerInstance().enabled()) { std::string source; diff --git a/opencl/source/kernel/multi_device_kernel.h b/opencl/source/kernel/multi_device_kernel.h index 6875b5cd9e..b5e2cc0eab 100644 --- a/opencl/source/kernel/multi_device_kernel.h +++ b/opencl/source/kernel/multi_device_kernel.h @@ -35,7 +35,7 @@ class MultiDeviceKernel : public BaseObject<_cl_kernel> { Kernel *getDefaultKernel() const { return defaultKernel; } template - static multi_device_kernel_t *create(program_t *program, const KernelInfoContainer &kernelInfos, cl_int *errcodeRet) { + static multi_device_kernel_t *create(program_t *program, const KernelInfoContainer &kernelInfos, cl_int &errcodeRet) { KernelVectorType kernels{}; kernels.resize(program->getMaxRootDeviceIndex() + 1); diff --git a/opencl/test/unit_test/accelerators/media_image_arg_tests.cpp b/opencl/test/unit_test/accelerators/media_image_arg_tests.cpp index 700499fa79..d9c928e1a6 100644 --- a/opencl/test/unit_test/accelerators/media_image_arg_tests.cpp +++ b/opencl/test/unit_test/accelerators/media_image_arg_tests.cpp @@ -46,7 +46,7 @@ class MediaImageSetArgTest : public ClDeviceFixture, pKernelInfo->addArgImage(0, 0x40, iOpenCL::IMAGE_MEMORY_OBJECT_2D_MEDIA); int32_t retVal = CL_INVALID_PLATFORM; - pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*static_cast(pKernelInfo.get()), rootDeviceIndex), &retVal); + pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*static_cast(pKernelInfo.get()), rootDeviceIndex), retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_khr_tests.inl b/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_khr_tests.inl index 7e35d73ea0..e9cac26902 100644 --- a/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_khr_tests.inl +++ b/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_khr_tests.inl @@ -186,11 +186,12 @@ TEST_F(KernelSubGroupInfoKhrTest, GivenNullDeviceWhenGettingSubGroupInfoFromSing } TEST_F(KernelSubGroupInfoKhrTest, GivenNullDeviceWhenGettingSubGroupInfoFromMultiDeviceKernelThenInvalidDeviceErrorIsReturned) { - + cl_int retVal{CL_SUCCESS}; MockUnrestrictiveContext context; auto mockProgram = std::make_unique(&context, false, context.getDevices()); std::unique_ptr pMultiDeviceKernel( - MultiDeviceKernel::create(mockProgram.get(), this->pMultiDeviceKernel->getKernelInfos(), nullptr)); + MultiDeviceKernel::create(mockProgram.get(), this->pMultiDeviceKernel->getKernelInfos(), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); retVal = clGetKernelSubGroupInfoKHR( pMultiDeviceKernel.get(), diff --git a/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_tests.inl b/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_tests.inl index d7b703ad88..99f5b22b6f 100644 --- a/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_tests.inl +++ b/opencl/test/unit_test/api/cl_get_kernel_sub_group_info_tests.inl @@ -339,7 +339,9 @@ TEST_F(KernelSubGroupInfoTest, GivenNullDeviceWhenGettingSubGroupInfoFromMultiDe MockUnrestrictiveContext context; auto mockProgram = std::make_unique(&context, false, context.getDevices()); - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(mockProgram.get(), this->pMultiDeviceKernel->getKernelInfos(), nullptr)); + cl_int retVal{CL_SUCCESS}; + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(mockProgram.get(), this->pMultiDeviceKernel->getKernelInfos(), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); retVal = clGetKernelSubGroupInfo( pMultiDeviceKernel.get(), diff --git a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl index 264536f944..e6b5b172bb 100644 --- a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl +++ b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -33,7 +33,9 @@ class KernelArgSvmApiFixture : public ApiFixture<> { pKernelInfo->addArgBuffer(0, 0x30, sizeof(void *)); pKernelInfo->setAddressQualifier(0, KernelArgMetadata::AddrGlobal); - pMockMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), nullptr); + cl_int retVal{CL_SUCCESS}; + pMockMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), retVal); + ASSERT_EQ(CL_SUCCESS, retVal); pMockKernel = static_cast(pMockMultiDeviceKernel->getKernel(testedRootDeviceIndex)); ASSERT_NE(nullptr, pMockKernel); pMockKernel->setCrossThreadData(pCrossThreadData, sizeof(pCrossThreadData)); @@ -81,10 +83,12 @@ TEST_F(clSetKernelArgSVMPointerTests, GivenDeviceNotSupportingSvmWhenSettingKern auto hwInfo = executionEnvironment->rootDeviceEnvironments[ApiFixture::testedRootDeviceIndex]->getMutableHardwareInfo(); hwInfo->capabilityTable.ftrSvm = false; + cl_int retVal{CL_SUCCESS}; std::unique_ptr pMultiDeviceKernel( - MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), nullptr)); + MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); - auto retVal = clSetKernelArgSVMPointer( + retVal = clSetKernelArgSVMPointer( pMultiDeviceKernel.get(), // cl_kernel kernel 0, // cl_uint arg_index nullptr // const void *arg_value 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 9745c0c944..11d1553745 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 @@ -23,7 +23,9 @@ class KernelExecInfoFixture : public ApiFixture<> { pKernelInfo = std::make_unique(); pKernelInfo->kernelDescriptor.kernelAttributes.simdSize = 1; - pMockMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), nullptr); + cl_int retVal{CL_SUCCESS}; + pMockMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), retVal); + ASSERT_EQ(CL_SUCCESS, retVal); pMockKernel = static_cast(pMockMultiDeviceKernel->getKernel(testedRootDeviceIndex)); ASSERT_NE(nullptr, pMockKernel); svmCapabilities = pDevice->getDeviceInfo().svmCapabilities; @@ -75,8 +77,10 @@ TEST_F(clSetKernelExecInfoTests, GivenDeviceNotSupportingSvmWhenSettingKernelExe auto hwInfo = executionEnvironment->rootDeviceEnvironments[ApiFixture::testedRootDeviceIndex]->getMutableHardwareInfo(); VariableBackup ftrSvm{&hwInfo->capabilityTable.ftrSvm, false}; + cl_int retVal{CL_SUCCESS}; std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create( - pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), nullptr)); + pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, testedRootDeviceIndex), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); uint32_t newPolicy = CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL; retVal = clSetKernelExecInfo( diff --git a/opencl/test/unit_test/aub_tests/command_queue/aub_scratch_space_tests_xehp_and_later.cpp b/opencl/test/unit_test/aub_tests/command_queue/aub_scratch_space_tests_xehp_and_later.cpp index c7e426a13e..0fa4da2453 100644 --- a/opencl/test/unit_test/aub_tests/command_queue/aub_scratch_space_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/aub_tests/command_queue/aub_scratch_space_tests_xehp_and_later.cpp @@ -180,7 +180,8 @@ class DefaultGrfKernelFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel("spill_test"), *device, - &retVal)); + retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); } void tearDown() { diff --git a/opencl/test/unit_test/aub_tests/gen9/skl/command_queue/run_kernel_aub_tests_skl.cpp b/opencl/test/unit_test/aub_tests/gen9/skl/command_queue/run_kernel_aub_tests_skl.cpp index 123e967f3d..ac3b6799b8 100644 --- a/opencl/test/unit_test/aub_tests/gen9/skl/command_queue/run_kernel_aub_tests_skl.cpp +++ b/opencl/test/unit_test/aub_tests/gen9/skl/command_queue/run_kernel_aub_tests_skl.cpp @@ -54,7 +54,8 @@ SKLTEST_F(AUBRunKernelIntegrateTest, GivenOoqExecutionThenExpectationsMet) { auto pMultiDeviceKernel0 = MultiDeviceKernel::create( pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo0, rootDeviceIndex), - &retVal); + retVal); + ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pMultiDeviceKernel0); const KernelInfo *pKernelInfo1 = pProgram->getKernelInfo("simple_kernel_1", rootDeviceIndex); @@ -63,7 +64,8 @@ SKLTEST_F(AUBRunKernelIntegrateTest, GivenOoqExecutionThenExpectationsMet) { auto pMultiDeviceKernel1 = MultiDeviceKernel::create( pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo1, rootDeviceIndex), - &retVal); + retVal); + ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pMultiDeviceKernel1); const KernelInfo *pKernelInfo2 = pProgram->getKernelInfo("simple_kernel_2", rootDeviceIndex); @@ -72,7 +74,8 @@ SKLTEST_F(AUBRunKernelIntegrateTest, GivenOoqExecutionThenExpectationsMet) { auto pMultiDeviceKernel2 = MultiDeviceKernel::create( pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo2, rootDeviceIndex), - &retVal); + retVal); + ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pMultiDeviceKernel2); const cl_int numElems = 64; @@ -277,7 +280,8 @@ SKLTEST_F(AUBRunKernelIntegrateTest, GivenDeviceSideVmeThenExpectationsMet) { auto *pMultiDeviceKernel = MultiDeviceKernel::create( pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), - &retVal); + retVal); + ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(pMultiDeviceKernel, nullptr); auto pKernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(true, pKernel->isVmeKernel()); diff --git a/opencl/test/unit_test/aub_tests/xe_hpc_core/system_memfence_aub_tests_xe_hpc_core.cpp b/opencl/test/unit_test/aub_tests/xe_hpc_core/system_memfence_aub_tests_xe_hpc_core.cpp index 248d19358d..d86ce2db8a 100644 --- a/opencl/test/unit_test/aub_tests/xe_hpc_core/system_memfence_aub_tests_xe_hpc_core.cpp +++ b/opencl/test/unit_test/aub_tests/xe_hpc_core/system_memfence_aub_tests_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Intel Corporation + * Copyright (C) 2022-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -208,8 +208,9 @@ XE_HPC_CORETEST_F(SystemMemFenceViaKernel, givenSystemMemFenceWhenKernelInstruct const KernelInfo *pKernelInfo = pProgram->getKernelInfo("SystemMemFence", rootDeviceIndex); ASSERT_NE(nullptr, pKernelInfo); - auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal)); + auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal)); ASSERT_NE(nullptr, pMultiDeviceKernel); + ASSERT_EQ(CL_SUCCESS, retVal); retVal = clSetKernelArgSVMPointer(pMultiDeviceKernel.get(), 0, deviceMemAlloc); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/aub_tests/xe_hpc_core/um_stateless_compression_aub_tests_xe_hpc_core.cpp b/opencl/test/unit_test/aub_tests/xe_hpc_core/um_stateless_compression_aub_tests_xe_hpc_core.cpp index 733d7c2c65..2b375d2359 100644 --- a/opencl/test/unit_test/aub_tests/xe_hpc_core/um_stateless_compression_aub_tests_xe_hpc_core.cpp +++ b/opencl/test/unit_test/aub_tests/xe_hpc_core/um_stateless_compression_aub_tests_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Intel Corporation + * Copyright (C) 2022-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -183,7 +183,8 @@ XE_HPC_CORETEST_P(UmStatelessCompressionWithStatefulAccess, givenDeviceMemAllocW const KernelInfo *pKernelInfo = pProgram->getKernelInfo("StatefulCopyBuffer", rootDeviceIndex); ASSERT_NE(nullptr, pKernelInfo); - auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal)); + auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pMultiDeviceKernel); retVal = clSetKernelArgSVMPointer(pMultiDeviceKernel.get(), 0, deviceMemAlloc); diff --git a/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp index b6b842d717..16bf9e2166 100644 --- a/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp @@ -50,7 +50,7 @@ class EnqueueDebugKernelFixture { multiDeviceKernel = MultiDeviceKernel::create( static_cast(program.get()), MockKernel::toKernelInfoContainer(*program->getKernelInfo("kernel", 0), device->getRootDeviceIndex()), - &retVal); + retVal); debugKernel = multiDeviceKernel->getKernel(device->getRootDeviceIndex()); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp index 7c4aef8b22..0bc7207612 100644 --- a/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp @@ -56,7 +56,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenAllArgsAreSetThenClEnqueueNDRangeKernel cl_int retVal = CL_INVALID_KERNEL; CommandQueue *pCmdQ2 = createCommandQueue(pClDevice); - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -186,7 +186,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenNotAllArgsAreSetButSetKernelArgIsCalled cl_int retVal = CL_SUCCESS; CommandQueue *pCmdQ2 = createCommandQueue(pClDevice); - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -227,7 +227,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenSetKernelArgIsCalledForEachArgButAtLeas cl_int retVal = CL_SUCCESS; CommandQueue *pCmdQ2 = createCommandQueue(pClDevice); - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -357,7 +357,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenAllArgsAreSetThenClEnqueueNDCountKernel pCmdQ2->getGpgpuEngine().osContext = pCmdQ2->getDevice().getEngine(aub_stream::ENGINE_CCS, EngineUsage::LowPriority).osContext; } - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -405,7 +405,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenNotAllArgsAreSetButSetKernelArgIsCalled pCmdQ2->getGpgpuEngine().osContext = pCmdQ2->getDevice().getEngine(aub_stream::ENGINE_CCS, EngineUsage::LowPriority).osContext; } - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -453,7 +453,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenSetKernelArgIsCalledForEachArgButAtLeas pCmdQ2->getGpgpuEngine().osContext = pCmdQ2->getDevice().getEngine(aub_stream::ENGINE_CCS, EngineUsage::LowPriority).osContext; } - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1466,7 +1466,7 @@ TEST_F(EnqueueKernelTest, givenKernelWhenAllArgsAreNotAndEventExistSetThenClEnqu cl_int retVal = CL_SUCCESS; CommandQueue *pCmdQ2 = createCommandQueue(pClDevice); - std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), &retVal)); + std::unique_ptr pMultiDeviceKernel(MultiDeviceKernel::create(pProgram, pProgram->getKernelInfosForKernel("CopyBuffer"), retVal)); auto kernel = pMultiDeviceKernel->getKernel(rootDeviceIndex); EXPECT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp index 453af12354..d15d6b5578 100644 --- a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp @@ -893,7 +893,7 @@ TEST_F(EnqueueSvmTest, GivenSvmAllocationWhenEnqueingKernelThenSuccessIsReturned std::unique_ptr program(Program::createBuiltInFromSource("FillBufferBytes", context, context->getDevices(), &retVal)); program->build(program->getDevices(), nullptr, false); - std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), &retVal)); + std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), retVal)); kernel->setSvmKernelExecInfo(svmAllocation); @@ -921,7 +921,7 @@ TEST_F(EnqueueSvmTest, givenEnqueueTaskBlockedOnUserEventWhenItIsEnqueuedThenSur auto program = clUniquePtr(Program::createBuiltInFromSource("FillBufferBytes", context, context->getDevices(), &retVal)); program->build(program->getDevices(), nullptr, false); - auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(program.get(), program->getKernelInfosForKernel("FillBufferBytes"), &retVal)); + auto pMultiDeviceKernel = clUniquePtr(MultiDeviceKernel::create(program.get(), program->getKernelInfosForKernel("FillBufferBytes"), retVal)); auto kernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); std::vector allSurfaces; kernel->getResidency(allSurfaces); diff --git a/opencl/test/unit_test/command_queue/get_size_required_image_tests.cpp b/opencl/test/unit_test/command_queue/get_size_required_image_tests.cpp index 7173800851..2c0d38ba3a 100644 --- a/opencl/test/unit_test/command_queue/get_size_required_image_tests.cpp +++ b/opencl/test/unit_test/command_queue/get_size_required_image_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -121,8 +121,10 @@ HWTEST_F(GetSizeRequiredImageTest, WhenCopyingReadWriteImageThenHeapsAndCommandB std::unique_ptr program(Program::createBuiltInFromSource("CopyImageToImage3d", context, context->getDevices(), nullptr)); program->build(program->getDevices(), nullptr, false); - std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("CopyImageToImage3d"), *context->getDevice(0), nullptr)); + cl_int retVal{CL_SUCCESS}; + std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("CopyImageToImage3d"), *context->getDevice(0), retVal)); + EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_NE(nullptr, kernel); // This kernel does not operate on OpenCL 2.0 Read and Write images EXPECT_FALSE(kernel->getKernelInfo().kernelDescriptor.kernelAttributes.flags.usesFencesForReadWriteImages); @@ -131,7 +133,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenCopyingReadWriteImageThenHeapsAndCommandB const_cast(kernel->getKernelInfo().kernelDescriptor).kernelAttributes.flags.usesFencesForReadWriteImages = true; // Enqueue kernel that may require special WA DisableLSQCROPERFforOCL - auto retVal = EnqueueKernelHelper<>::enqueueKernel(pCmdQ, kernel.get()); + retVal = EnqueueKernelHelper<>::enqueueKernel(pCmdQ, kernel.get()); EXPECT_EQ(CL_SUCCESS, retVal); auto usedAfterCS = commandStream.getUsed(); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp index 32061def2d..0e37f02ab1 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp @@ -42,7 +42,8 @@ HWTEST_F(MultiRootDeviceCommandStreamReceiverBufferTests, givenMultipleEventInMu std::unique_ptr program(Program::createBuiltInFromSource("FillBufferBytes", context.get(), context->getDevices(), &retVal)); program->build(program->getDevices(), nullptr, false); - std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), &retVal)); + std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); size_t svmSize = 4096; void *svmPtr = alignedMalloc(svmSize, MemoryConstants::pageSize); diff --git a/opencl/test/unit_test/context/driver_diagnostics_tests.h b/opencl/test/unit_test/context/driver_diagnostics_tests.h index c15fe5b407..9598f3b904 100644 --- a/opencl/test/unit_test/context/driver_diagnostics_tests.h +++ b/opencl/test/unit_test/context/driver_diagnostics_tests.h @@ -227,7 +227,7 @@ struct PerformanceHintEnqueueKernelTest : public PerformanceHintEnqueueTest, createProgramFromBinary(context, context->getDevices(), "CopyBuffer_simd32"); retVal = pProgram->build(pProgram->getDevices(), nullptr, false); ASSERT_EQ(CL_SUCCESS, retVal); - kernel = Kernel::create(pProgram, pProgram->getKernelInfoForKernel("CopyBuffer"), *context->getDevice(0), &retVal); + kernel = Kernel::create(pProgram, pProgram->getKernelInfoForKernel("CopyBuffer"), *context->getDevice(0), retVal); globalWorkGroupSize[0] = globalWorkGroupSize[1] = globalWorkGroupSize[2] = 1; rootDeviceIndex = context->getDevice(0)->getRootDeviceIndex(); @@ -268,7 +268,7 @@ struct PerformanceHintEnqueueKernelPrintfTest : public PerformanceHintEnqueueTes createProgramFromBinary(context, context->getDevices(), "printf"); retVal = pProgram->build(pProgram->getDevices(), nullptr, false); ASSERT_EQ(CL_SUCCESS, retVal); - kernel = static_cast(Kernel::create(pProgram, pProgram->getKernelInfoForKernel("test"), *context->getDevice(0), &retVal)); + kernel = static_cast(Kernel::create(pProgram, pProgram->getKernelInfoForKernel("test"), *context->getDevice(0), retVal)); kernel->initializeLocalIdsCache(); globalWorkGroupSize[0] = globalWorkGroupSize[1] = globalWorkGroupSize[2] = 1; diff --git a/opencl/test/unit_test/fixtures/hello_world_kernel_fixture.h b/opencl/test/unit_test/fixtures/hello_world_kernel_fixture.h index ba8871c702..2b16b98dd4 100644 --- a/opencl/test/unit_test/fixtures/hello_world_kernel_fixture.h +++ b/opencl/test/unit_test/fixtures/hello_world_kernel_fixture.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -74,7 +74,7 @@ struct HelloWorldKernelFixture : public ProgramFixture { pMultiDeviceKernel = MultiDeviceKernel::create( pProgram, pProgram->getKernelInfosForKernel(pKernelName->c_str()), - &retVal); + retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(pDevice->getRootDeviceIndex())); EXPECT_NE(nullptr, pKernel); diff --git a/opencl/test/unit_test/fixtures/kernel_arg_fixture.cpp b/opencl/test/unit_test/fixtures/kernel_arg_fixture.cpp index c0f23938b6..58778bf180 100644 --- a/opencl/test/unit_test/fixtures/kernel_arg_fixture.cpp +++ b/opencl/test/unit_test/fixtures/kernel_arg_fixture.cpp @@ -56,7 +56,7 @@ void KernelImageArgTest::SetUp() { context.reset(new MockContext(pClDevice)); program = std::make_unique(context.get(), false, toClDeviceVector(*pClDevice)); int32_t retVal = CL_INVALID_VALUE; - pMultiDeviceKernel.reset(MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal)); + pMultiDeviceKernel.reset(MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal)); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/fixtures/media_kernel_fixture.h b/opencl/test/unit_test/fixtures/media_kernel_fixture.h index a8082e8477..121d2acfca 100644 --- a/opencl/test/unit_test/fixtures/media_kernel_fixture.h +++ b/opencl/test/unit_test/fixtures/media_kernel_fixture.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -77,7 +77,7 @@ struct MediaKernelFixture : public HelloWorldFixture, pMultiDeviceVmeKernel = MultiDeviceKernel::create( pProgram, pProgram->getKernelInfosForKernel("device_side_block_motion_estimate_intel"), - &retVal); + retVal); pVmeKernel = pMultiDeviceVmeKernel->getKernel(pDevice->getRootDeviceIndex()); ASSERT_NE(nullptr, pVmeKernel); diff --git a/opencl/test/unit_test/fixtures/simple_arg_kernel_fixture.h b/opencl/test/unit_test/fixtures/simple_arg_kernel_fixture.h index aa22bbe7f3..0ecd221442 100644 --- a/opencl/test/unit_test/fixtures/simple_arg_kernel_fixture.h +++ b/opencl/test/unit_test/fixtures/simple_arg_kernel_fixture.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -111,7 +111,7 @@ class SimpleArgKernelFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel("SimpleArg"), *pDevice, - &retVal); + retVal); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); @@ -158,7 +158,7 @@ class SimpleArgNonUniformKernelFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel("simpleNonUniform"), *device, - &retVal); + retVal); ASSERT_NE(nullptr, kernel); ASSERT_EQ(CL_SUCCESS, retVal); } @@ -205,7 +205,7 @@ class SimpleKernelFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel(kernelName.c_str()), *device, - &retVal)); + retVal)); ASSERT_NE(nullptr, kernels[i]); ASSERT_EQ(CL_SUCCESS, retVal); } @@ -255,7 +255,7 @@ class SimpleKernelStatelessFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel("statelessKernel"), *device, - &retVal)); + retVal)); ASSERT_NE(nullptr, kernel); ASSERT_EQ(CL_SUCCESS, retVal); } @@ -294,7 +294,7 @@ class StatelessCopyKernelFixture : public ProgramFixture { multiDeviceKernel.reset(MultiDeviceKernel::create( pProgram, pProgram->getKernelInfosForKernel("StatelessCopyBuffer"), - &retVal)); + retVal)); kernel = static_cast(multiDeviceKernel->getKernel(device->getRootDeviceIndex())); ASSERT_NE(nullptr, kernel); ASSERT_EQ(CL_SUCCESS, retVal); @@ -335,7 +335,7 @@ class StatelessKernelWithIndirectAccessFixture : public ProgramFixture { multiDeviceKernel.reset(MultiDeviceKernel::create( pProgram, pProgram->getKernelInfosForKernel("testIndirect"), - &retVal)); + retVal)); ASSERT_NE(nullptr, multiDeviceKernel); ASSERT_EQ(CL_SUCCESS, retVal); @@ -381,7 +381,7 @@ class BindlessKernelFixture : public ProgramFixture { pProgram, pProgram->getKernelInfoForKernel(kernelName.c_str()), *deviceCl, - &retVal)); + retVal)); ASSERT_NE(nullptr, kernel); ASSERT_EQ(CL_SUCCESS, retVal); } diff --git a/opencl/test/unit_test/helpers/hardware_commands_helper_tests.cpp b/opencl/test/unit_test/helpers/hardware_commands_helper_tests.cpp index 36f697ffcf..7755cf19e3 100644 --- a/opencl/test/unit_test/helpers/hardware_commands_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hardware_commands_helper_tests.cpp @@ -1234,7 +1234,8 @@ HWTEST_F(KernelCacheFlushTests, givenLocallyUncachedBufferWhenGettingAllocations DebugManager.flags.EnableCacheFlushAfterWalker.set(-1); DebugManager.flags.CreateMultipleSubDevices.set(2); auto context = std::make_unique(); - auto kernel = std::unique_ptr(Kernel::create(pProgram, pProgram->getKernelInfoForKernel("CopyBuffer"), *context->getDevice(0), &retVal)); + auto kernel = std::unique_ptr(Kernel::create(pProgram, pProgram->getKernelInfoForKernel("CopyBuffer"), *context->getDevice(0), retVal)); + ASSERT_EQ(CL_SUCCESS, retVal); cl_mem_properties_intel bufferPropertiesUncachedResource[] = {CL_MEM_FLAGS_INTEL, CL_MEM_LOCALLY_UNCACHED_RESOURCE, 0}; auto bufferLocallyUncached = clCreateBufferWithPropertiesINTEL(context.get(), bufferPropertiesUncachedResource, 0, 1, nullptr, nullptr); diff --git a/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp b/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp index 8af433b140..8a16963936 100644 --- a/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp @@ -111,7 +111,7 @@ struct MultiDeviceKernelArgBufferTest : public ::testing::Test { }; TEST_F(MultiDeviceKernelArgBufferTest, GivenValidBufferWhenSettingKernelArgThenBufferAddressIsCorrect) { int32_t retVal = CL_INVALID_VALUE; - auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, &retVal)); + auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, retVal)); EXPECT_EQ(CL_SUCCESS, retVal); cl_mem val = pBuffer.get(); @@ -173,7 +173,7 @@ HWTEST_F(MultiDeviceKernelArgBufferTest, GivenSvmPtrStatefulWhenSettingKernelArg for (auto &kernelInfo : pKernelInfosStorage) { kernelInfo->argAsPtr(0).bindful = 0; } - auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, &retVal)); + auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, retVal)); EXPECT_EQ(CL_SUCCESS, retVal); @@ -232,7 +232,7 @@ TEST_F(KernelArgBufferTest, GivenNullPtrWhenSettingKernelArgThenKernelArgIsNull) TEST_F(MultiDeviceKernelArgBufferTest, GivenNullPtrWhenSettingKernelArgThenKernelArgIsNull) { int32_t retVal = CL_INVALID_VALUE; - auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, &retVal)); + auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(pProgram.get(), kernelInfos, retVal)); EXPECT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/kernel/kernel_is_patched_tests.cpp b/opencl/test/unit_test/kernel/kernel_is_patched_tests.cpp index 583af32b7b..e65d2baee4 100644 --- a/opencl/test/unit_test/kernel/kernel_is_patched_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_is_patched_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -23,7 +23,7 @@ class PatchedKernelTest : public ::testing::Test { program.reset(Program::createBuiltInFromSource("FillBufferBytes", context.get(), context->getDevices(), &retVal)); EXPECT_EQ(CL_SUCCESS, retVal); program->build(program->getDevices(), nullptr, false); - kernel.reset(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *device, &retVal)); + kernel.reset(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *device, retVal)); EXPECT_EQ(CL_SUCCESS, retVal); } void TearDown() override { diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index cb9908e3d1..0e335eb532 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -73,7 +73,7 @@ class KernelTests : public ProgramFromBinaryFixture { pProgram, pProgram->getKernelInfoForKernel(kernelName), *pClDevice, - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, kernel); @@ -423,7 +423,7 @@ TEST_F(KernelFromBinaryTests, GivenKernelNumArgsWhenGettingInfoThenNumberOfKerne pProgram, kernelInfo, *pClDevice, - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); @@ -462,7 +462,7 @@ TEST_F(KernelFromBinaryTests, WhenRegularKernelIsCreatedThenItIsNotBuiltIn) { pProgram, kernelInfo, *pClDevice, - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, kernel); @@ -3130,7 +3130,7 @@ TEST_F(KernelMultiRootDeviceTest, givenKernelWithPrivateSurfaceWhenInitializeThe MockProgram program(context.get(), false, context->getDevices()); int32_t retVal = CL_INVALID_VALUE; - auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(&program, kernelInfos, &retVal)); + auto pMultiDeviceKernel = std::unique_ptr(MultiDeviceKernel::create(&program, kernelInfos, retVal)); EXPECT_EQ(CL_SUCCESS, retVal); @@ -3167,69 +3167,37 @@ TEST_F(KernelCreateTest, whenInitFailedThenReturnNull) { KernelInfo info{}; info.kernelDescriptor.kernelAttributes.gpuPointerSize = 8; - auto ret = Kernel::create(&mockProgram, info, mockProgram.mDevice, nullptr); + cl_int retVal{CL_SUCCESS}; + auto ret = Kernel::create(&mockProgram, info, mockProgram.mDevice, retVal); EXPECT_EQ(nullptr, ret); + EXPECT_NE(CL_SUCCESS, retVal); } -TEST_F(KernelCreateTest, whenSlmSizeExceedsLocalMemorySizeThenDebugMsgErrIsPrintedAndOutOfResourcesIsReturned) { - struct MockKernel { - MockKernel(MockProgram *, const KernelInfo &, ClDevice &clDevice) { - deviceLocalMemSize = static_cast(clDevice.getDevice().getDeviceInfo().localMemSize); - } - int initialize() { return 0; }; - uint32_t getSlmTotalSize() const { - return deviceLocalMemSize - 10u; - }; - uint32_t deviceLocalMemSize = 0u; - }; - struct MockKernelExceedSLM { - MockKernelExceedSLM(MockProgram *, const KernelInfo &, ClDevice &clDevice) { - deviceLocalMemSize = static_cast(clDevice.getDevice().getDeviceInfo().localMemSize); - } - int initialize() { return 0; }; - uint32_t getSlmTotalSize() const { - return deviceLocalMemSize + 10u; - }; - uint32_t deviceLocalMemSize = 0u; - }; - +TEST(KernelInitializationTest, givenSlmSizeExceedingLocalMemorySizeWhenInitializingKernelThenDebugMsgErrIsPrintedAndOutOfResourcesIsReturned) { DebugManagerStateRestore dbgRestorer; DebugManager.flags.PrintDebugMessages.set(true); - KernelInfo info{}; + MockContext context; + MockProgram mockProgram(&context, false, context.getDevices()); + auto clDevice = context.getDevice(0); + auto deviceLocalMemSize = static_cast(clDevice->getDevice().getDeviceInfo().localMemSize); + + MockKernelInfo mockKernelInfoExceedsSLM{}; + mockKernelInfoExceedsSLM.kernelDescriptor.kernelAttributes.simdSize = 1u; + + auto slmTotalSize = deviceLocalMemSize + 10u; + mockKernelInfoExceedsSLM.kernelDescriptor.kernelAttributes.slmInlineSize = slmTotalSize; + auto localMemSize = static_cast(clDevice->getDevice().getDeviceInfo().localMemSize); + cl_int retVal{}; - ::testing::internal::CaptureStderr(); - - auto localMemSize = static_cast(mockProgram.mDevice.getDevice().getDeviceInfo().localMemSize); - - std::unique_ptr kernel0(Kernel::create(&mockProgram, info, mockProgram.mDevice, &retVal)); - EXPECT_NE(nullptr, kernel0.get()); - EXPECT_NE(CL_OUT_OF_RESOURCES, retVal); - - std::string output = testing::internal::GetCapturedStderr(); - EXPECT_EQ(std::string(""), output); - - ::testing::internal::CaptureStderr(); - - retVal = 0; - - std::unique_ptr kernel1(Kernel::create(&mockProgram, info, mockProgram.mDevice, &retVal)); - EXPECT_NE(nullptr, kernel1.get()); + std::unique_ptr kernelPtr(Kernel::create(&mockProgram, mockKernelInfoExceedsSLM, *clDevice, retVal)); + EXPECT_EQ(nullptr, kernelPtr.get()); EXPECT_EQ(CL_OUT_OF_RESOURCES, retVal); - output = testing::internal::GetCapturedStderr(); - const auto &slmTotalSize = localMemSize + 10u; + const auto &output = testing::internal::GetCapturedStderr(); std::string expectedOutput = "Size of SLM (" + std::to_string(slmTotalSize) + ") larger than available (" + std::to_string(localMemSize) + ")\n"; EXPECT_EQ(expectedOutput, output); - - ::testing::internal::CaptureStderr(); - - std::unique_ptr kernel2(Kernel::create(&mockProgram, info, mockProgram.mDevice, nullptr)); - EXPECT_NE(nullptr, kernel2.get()); - - output = testing::internal::GetCapturedStderr(); - EXPECT_EQ(expectedOutput, output); } TEST(MultiDeviceKernelCreateTest, whenInitFailedThenReturnNullAndPropagateErrorCode) { @@ -3243,7 +3211,7 @@ TEST(MultiDeviceKernelCreateTest, whenInitFailedThenReturnNullAndPropagateErrorC MockProgram program(&context, false, context.getDevices()); int32_t retVal = CL_SUCCESS; - auto pMultiDeviceKernel = MultiDeviceKernel::create(&program, kernelInfos, &retVal); + auto pMultiDeviceKernel = MultiDeviceKernel::create(&program, kernelInfos, retVal); EXPECT_EQ(nullptr, pMultiDeviceKernel); EXPECT_EQ(CL_INVALID_KERNEL, retVal); diff --git a/opencl/test/unit_test/mem_obj/buffer_pool_alloc_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_pool_alloc_tests.cpp index 6cbc6c6faa..81c4366674 100644 --- a/opencl/test/unit_test/mem_obj/buffer_pool_alloc_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_pool_alloc_tests.cpp @@ -81,7 +81,7 @@ class AggregatedSmallBuffersKernelTest : public AggregatedSmallBuffersTestTempla pProgram.reset(new MockProgram(context.get(), false, toClDeviceVector(*device))); retVal = CL_INVALID_VALUE; - pMultiDeviceKernel.reset(MultiDeviceKernel::create(pProgram.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, device->getRootDeviceIndex()), &retVal)); + pMultiDeviceKernel.reset(MultiDeviceKernel::create(pProgram.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, device->getRootDeviceIndex()), retVal)); pKernel = static_cast(pMultiDeviceKernel->getKernel(device->getRootDeviceIndex())); ASSERT_NE(pKernel, nullptr); ASSERT_EQ(retVal, CL_SUCCESS); diff --git a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp index b2a4aa0860..c171955471 100644 --- a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp @@ -56,7 +56,7 @@ class BufferSetArgTest : public ContextFixture, pProgram = new MockProgram(pContext, false, toClDeviceVector(*pClDevice)); retVal = CL_INVALID_VALUE; - pMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal); + pMultiDeviceKernel = MultiDeviceKernel::create(pProgram, MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp index 3a99cd3315..55c8610f89 100644 --- a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp @@ -78,7 +78,7 @@ class ImageSetArgTest : public ClDeviceFixture, program = std::make_unique(toClDeviceVector(*pClDevice)); retVal = CL_INVALID_VALUE; - pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal); + pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); @@ -934,7 +934,7 @@ class ImageMediaBlockSetArgTest : public ImageSetArgTest { program = std::make_unique(toClDeviceVector(*pClDevice)); retVal = CL_INVALID_VALUE; - pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal); + pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/program/program_nonuniform.cpp b/opencl/test/unit_test/program/program_nonuniform.cpp index b96ca1941f..e2692606dd 100644 --- a/opencl/test/unit_test/program/program_nonuniform.cpp +++ b/opencl/test/unit_test/program/program_nonuniform.cpp @@ -196,7 +196,7 @@ TEST_F(ProgramNonUniformTest, GivenCl21WhenExecutingKernelWithNonUniformThenEnqu auto pKernel = Kernel::create(mockProgram, *pKernelInfo, *pPlatform->getClDevice(0), - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pKernel); @@ -238,7 +238,7 @@ TEST_F(ProgramNonUniformTest, GivenCl20WhenExecutingKernelWithNonUniformThenEnqu auto pKernel = Kernel::create(mockProgram, *pKernelInfo, *pPlatform->getClDevice(0), - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pKernel); @@ -278,7 +278,7 @@ TEST_F(ProgramNonUniformTest, GivenCl12WhenExecutingKernelWithNonUniformThenInva auto pKernel = Kernel::create(mockProgram, *pKernelInfo, *pPlatform->getClDevice(0), - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pKernel); diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index 973f381681..f2cc4345b0 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -1470,7 +1470,7 @@ TEST_F(PatchTokenTests, WhenBuildingProgramThenConstantKernelArgsAreAvailable) { pProgram, *pKernelInfo, *pClDevice, - &retVal); + retVal); ASSERT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pKernel); @@ -1511,8 +1511,9 @@ TEST_F(PatchTokenTests, GivenVmeKernelWhenBuildingKernelThenArgAvailable) { pProgram, *pKernelInfo, *pClDevice, - &retVal); + retVal); + EXPECT_EQ(CL_SUCCESS, retVal); ASSERT_NE(nullptr, pKernel); delete pKernel; diff --git a/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp b/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp index 9ab8770106..5c0520ea1e 100644 --- a/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp +++ b/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp @@ -49,7 +49,7 @@ class SamplerSetArgFixture : public ClDeviceFixture { program = std::make_unique(toClDeviceVector(*pClDevice)); retVal = CL_INVALID_VALUE; - pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), &retVal); + pMultiDeviceKernel = MultiDeviceKernel::create(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex), retVal); pKernel = static_cast(pMultiDeviceKernel->getKernel(rootDeviceIndex)); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/xe_hpc_core/pvc/command_stream_receiver_hw_tests_pvc.cpp b/opencl/test/unit_test/xe_hpc_core/pvc/command_stream_receiver_hw_tests_pvc.cpp index 19f96b7053..1e5a87e28e 100644 --- a/opencl/test/unit_test/xe_hpc_core/pvc/command_stream_receiver_hw_tests_pvc.cpp +++ b/opencl/test/unit_test/xe_hpc_core/pvc/command_stream_receiver_hw_tests_pvc.cpp @@ -238,7 +238,7 @@ PVCTEST_F(PvcMultiRootDeviceCommandStreamReceiverBufferTests, givenMultipleEvent std::unique_ptr program(Program::createBuiltInFromSource("FillBufferBytes", context.get(), context->getDevices(), &retVal)); program->build(program->getDevices(), nullptr, false); - std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), &retVal)); + std::unique_ptr kernel(Kernel::create(program.get(), program->getKernelInfoForKernel("FillBufferBytes"), *context->getDevice(0), retVal)); size_t svmSize = 4096; void *svmPtr = alignedMalloc(svmSize, MemoryConstants::pageSize);