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 <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2023-04-06 21:44:42 +00:00
committed by Compute-Runtime-Automation
parent 01d03aa5b6
commit 7be2ac84d3
36 changed files with 132 additions and 144 deletions

View File

@@ -91,7 +91,7 @@ class Kernel : public ReferenceTrackedObject<Kernel> {
const void *argVal);
template <typename kernel_t = Kernel, typename program_t = Program>
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<Kernel> {
delete pKernel;
pKernel = nullptr;
}
if (pKernel) {
auto localMemSize = static_cast<uint32_t>(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;