From 4a68fedb546ed92876515282eaa5e293c6cc1e2f Mon Sep 17 00:00:00 2001 From: foreman Date: Fri, 3 Nov 2017 16:37:11 -0400 Subject: [PATCH] P4 to Git Change 1478682 by wchau@wchau_OCL_boltzmann on 2017/11/03 16:13:20 SWDEV-135791 - Set kernel max work group size from metadata Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#39 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#29 edit [ROCm/clr commit: ebc3b138a74b874577b407b18ecc229a74411b5b] --- projects/clr/rocclr/runtime/device/pal/palkernel.cpp | 10 ++++------ projects/clr/rocclr/runtime/device/rocm/rockernel.cpp | 8 +++----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/pal/palkernel.cpp b/projects/clr/rocclr/runtime/device/pal/palkernel.cpp index 6398e50c84..5efc0a0192 100644 --- a/projects/clr/rocclr/runtime/device/pal/palkernel.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palkernel.cpp @@ -1533,12 +1533,10 @@ bool LightningKernel::init(amd::hsa::loader::Symbol* symbol) { // Copy wavefront size workGroupInfo_.wavefrontSize_ = dev().info().wavefrontWidth_; - // Find total workgroup size - if (workGroupInfo_.compileSize_[0] != 0) { - workGroupInfo_.size_ = workGroupInfo_.compileSize_[0] * workGroupInfo_.compileSize_[1] * - workGroupInfo_.compileSize_[2]; - } else { - workGroupInfo_.size_ = dev().info().preferredWorkGroupSize_; + + workGroupInfo_.size_ = kernelMD->mCodeProps.mMaxFlatWorkGroupSize; + if (workGroupInfo_.size_ == 0) { + return false; } initPrintf(programMD->mPrintf); diff --git a/projects/clr/rocclr/runtime/device/rocm/rockernel.cpp b/projects/clr/rocclr/runtime/device/rocm/rockernel.cpp index 79c66ee384..87702089b9 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rockernel.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rockernel.cpp @@ -716,11 +716,9 @@ bool Kernel::init_LC() { workGroupInfo_.wavefrontSize_ = wavefront_size; - if (workGroupInfo_.compileSize_[0] != 0) { - workGroupInfo_.size_ = workGroupInfo_.compileSize_[0] * workGroupInfo_.compileSize_[1] * - workGroupInfo_.compileSize_[2]; - } else { - workGroupInfo_.size_ = program_->dev().info().preferredWorkGroupSize_; + workGroupInfo_.size_ = kernelMD->mCodeProps.mMaxFlatWorkGroupSize; + if (workGroupInfo_.size_ == 0) { + return false; } initPrintf_LC(programMD->mPrintf);