From ea25e658343ea8b12ae33034215195c00d9ae37d Mon Sep 17 00:00:00 2001 From: Jaydeep Patel Date: Thu, 11 Jan 2024 06:25:45 +0000 Subject: [PATCH] SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false. Lighting kernel's init sets uniform work group flag and hence not need to set it from options. Change-Id: I8d3a9a6ed1c3bddaaa86f7cdc242a45e6a1d09f6 --- rocclr/device/devkernel.cpp | 2 +- rocclr/device/pal/palprogram.cpp | 4 +++- rocclr/device/rocm/rocprogram.cpp | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/rocclr/device/devkernel.cpp b/rocclr/device/devkernel.cpp index 2b919bf563..84e6ab7e87 100644 --- a/rocclr/device/devkernel.cpp +++ b/rocclr/device/devkernel.cpp @@ -575,7 +575,7 @@ static amd_comgr_status_t populateKernelMetaV3(const amd_comgr_metadata_node_t k kernel->SetWGPMode(buf.compare("true") == 0); break; case KernelField::UniformWrokGroupSize: - kernel->setUniformWorkGroupSize(buf.compare("true") == 0); + kernel->setUniformWorkGroupSize(buf.compare("1") == 0); break; default: return AMD_COMGR_STATUS_ERROR; diff --git a/rocclr/device/pal/palprogram.cpp b/rocclr/device/pal/palprogram.cpp index 05eba432b7..c7a49479d4 100644 --- a/rocclr/device/pal/palprogram.cpp +++ b/rocclr/device/pal/palprogram.cpp @@ -762,7 +762,9 @@ bool LightningProgram::createKernels(void* binary, size_t binSize, bool useUnifo } kernels()[kernelName] = kernel; - kernel->setUniformWorkGroupSize(useUniformWorkGroupSize); + if (codeObjectVer() < 5) { + kernel->setUniformWorkGroupSize(useUniformWorkGroupSize); + } } } executable_ = loader_->CreateExecutable(HSA_PROFILE_FULL, nullptr); diff --git a/rocclr/device/rocm/rocprogram.cpp b/rocclr/device/rocm/rocprogram.cpp index 4f77026d6a..580803fdeb 100644 --- a/rocclr/device/rocm/rocprogram.cpp +++ b/rocclr/device/rocm/rocprogram.cpp @@ -274,7 +274,9 @@ bool LightningProgram::createKernels(void* binary, size_t binSize, bool useUnifo if (!aKernel->init()) { return false; } - aKernel->setUniformWorkGroupSize(useUniformWorkGroupSize); + if (codeObjectVer() < 5) { + aKernel->setUniformWorkGroupSize(useUniformWorkGroupSize); + } aKernel->setInternalKernelFlag(internalKernel); kernels()[kernelName] = aKernel; }