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);