P4 to Git Change 1200206 by jatang@jatang-opencl-hsa-stg1 on 2015/10/15 10:08:51
SWDEV-56468 - Support wave limiter in HSAIL path. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#302 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#120 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#386 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.cpp#9 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.hpp#6 edit
This commit is contained in:
@@ -826,7 +826,7 @@ Kernel::create(
|
||||
|
||||
// Wave limiter needs to be initialized after kernel metadata is parsed
|
||||
// Since it depends on it.
|
||||
waveLimiter_.enable();
|
||||
waveLimiter_.enable(dev().settings().ciPlus_);
|
||||
|
||||
if (result) {
|
||||
buildError_ = CL_SUCCESS;
|
||||
@@ -844,7 +844,7 @@ Kernel::Kernel(
|
||||
const Program& prog,
|
||||
const InitData* initData)
|
||||
: NullKernel(name, gpuDev, prog)
|
||||
, waveLimiter_(this)
|
||||
, waveLimiter_(this, dev().getAttribs().numberOfCUsperShaderArray * dev().hwInfo()->simdPerCU_)
|
||||
{
|
||||
hwPrivateSize_ = 0;
|
||||
if (NULL != initData) {
|
||||
@@ -3371,6 +3371,7 @@ HSAILKernel::HSAILKernel(std::string name,
|
||||
, codeSize_(0)
|
||||
, hwMetaData_(NULL)
|
||||
, extraArgumentsNum_(extraArgsNum)
|
||||
, waveLimiter_(this, dev().getAttribs().numberOfCUsperShaderArray * dev().hwInfo()->simdPerCU_)
|
||||
{
|
||||
hsa_ = true;
|
||||
}
|
||||
@@ -3517,6 +3518,16 @@ HSAILKernel::init(amd::hsa::loader::Symbol *sym, bool finalize)
|
||||
}
|
||||
index_ = md.kernel_index;
|
||||
|
||||
size_t sizeOfWavesPerSimdHint;
|
||||
error = aclQueryInfo(dev().hsaCompiler(), prog().binaryElf(),
|
||||
RT_WAVES_PER_SIMD_HINT, openClKernelName.c_str(),
|
||||
&workGroupInfo_.wavesPerSimdHint_, &sizeOfWavesPerSimdHint);
|
||||
if (error != ACL_SUCCESS) {
|
||||
return false;
|
||||
}
|
||||
|
||||
waveLimiter_.enable(dev().settings().ciPlus_);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user