Add getAdditionalWorkGroupInfo stub

Change-Id: I4b51e531c2e3da1c616c1f0eb038abd60e47c4f0
This commit is contained in:
Lukasz Towarek 2020-08-12 16:53:25 +02:00 committed by sys_ocldev
parent 62428505c5
commit 867b3d5492
4 changed files with 37 additions and 7 deletions

View File

@ -10,4 +10,7 @@
namespace NEO {
void Kernel::getAdditionalInfo(cl_kernel_info paramName, const void *&paramValue, size_t &paramValueSizeRet) const {
}
void Kernel::getAdditionalWorkGroupInfo(cl_kernel_work_group_info paramName, const void *&paramValue, size_t &paramValueSizeRet) const {
}
} // namespace NEO

View File

@ -572,6 +572,8 @@ cl_int Kernel::getWorkGroupInfo(cl_device_id device, cl_kernel_work_group_info p
size_t paramValueSize, void *paramValue,
size_t *paramValueSizeRet) const {
cl_int retVal = CL_INVALID_VALUE;
const void *pSrc = nullptr;
size_t srcSize = GetInfo::invalidSourceSize;
struct size_t3 {
size_t val[3];
} requiredWorkGroupSize;
@ -592,7 +594,8 @@ cl_int Kernel::getWorkGroupInfo(cl_device_id device, cl_kernel_work_group_info p
auto divisionSize = CommonConstants::maximalSimdSize / patchInfo.executionEnvironment->LargestCompiledSIMDSize;
maxWorkgroupSize /= divisionSize;
}
retVal = changeGetInfoStatusToCLResultType(info.set<size_t>(maxWorkgroupSize));
srcSize = sizeof(maxWorkgroupSize);
pSrc = &maxWorkgroupSize;
break;
case CL_KERNEL_COMPILE_WORK_GROUP_SIZE:
@ -600,14 +603,16 @@ cl_int Kernel::getWorkGroupInfo(cl_device_id device, cl_kernel_work_group_info p
requiredWorkGroupSize.val[0] = patchInfo.executionEnvironment->RequiredWorkGroupSizeX;
requiredWorkGroupSize.val[1] = patchInfo.executionEnvironment->RequiredWorkGroupSizeY;
requiredWorkGroupSize.val[2] = patchInfo.executionEnvironment->RequiredWorkGroupSizeZ;
retVal = changeGetInfoStatusToCLResultType(info.set<size_t3>(requiredWorkGroupSize));
srcSize = sizeof(requiredWorkGroupSize);
pSrc = &requiredWorkGroupSize;
break;
case CL_KERNEL_LOCAL_MEM_SIZE:
localMemorySize = patchInfo.localsurface
? patchInfo.localsurface->TotalInlineLocalMemorySize
: 0;
retVal = changeGetInfoStatusToCLResultType(info.set<cl_ulong>(localMemorySize));
srcSize = sizeof(localMemorySize);
pSrc = &localMemorySize;
break;
case CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE:
@ -616,22 +621,29 @@ cl_int Kernel::getWorkGroupInfo(cl_device_id device, cl_kernel_work_group_info p
if (hwHelper.isFusedEuDispatchEnabled(hwInfo)) {
preferredWorkGroupSizeMultiple *= 2;
}
retVal = changeGetInfoStatusToCLResultType((info.set<size_t>(preferredWorkGroupSizeMultiple)));
srcSize = sizeof(preferredWorkGroupSizeMultiple);
pSrc = &preferredWorkGroupSizeMultiple;
break;
case CL_KERNEL_SPILL_MEM_SIZE_INTEL:
scratchSize = kernelInfo.patchInfo.mediavfestate ? kernelInfo.patchInfo.mediavfestate->PerThreadScratchSpace : 0;
retVal = changeGetInfoStatusToCLResultType(info.set<cl_ulong>(scratchSize));
srcSize = sizeof(scratchSize);
pSrc = &scratchSize;
break;
case CL_KERNEL_PRIVATE_MEM_SIZE:
privateMemSize = kernelInfo.patchInfo.pAllocateStatelessPrivateSurface ? kernelInfo.patchInfo.pAllocateStatelessPrivateSurface->PerThreadPrivateMemorySize : 0;
retVal = changeGetInfoStatusToCLResultType(info.set<cl_ulong>(privateMemSize));
srcSize = sizeof(privateMemSize);
pSrc = &privateMemSize;
break;
default:
retVal = CL_INVALID_VALUE;
getAdditionalWorkGroupInfo(paramName, pSrc, srcSize);
break;
}
auto getInfoStatus = GetInfo::getInfo(paramValue, paramValueSize, pSrc, srcSize);
retVal = changeGetInfoStatusToCLResultType(getInfoStatus);
GetInfo::setParamValueReturnSize(paramValueSizeRet, srcSize, getInfoStatus);
return retVal;
}

View File

@ -138,6 +138,7 @@ class Kernel : public BaseObject<_cl_kernel> {
cl_int getInfo(cl_kernel_info paramName, size_t paramValueSize,
void *paramValue, size_t *paramValueSizeRet) const;
void getAdditionalInfo(cl_kernel_info paramName, const void *&paramValue, size_t &paramValueSizeRet) const;
void getAdditionalWorkGroupInfo(cl_kernel_work_group_info paramName, const void *&paramValue, size_t &paramValueSizeRet) const;
cl_int getArgInfo(cl_uint argIndx, cl_kernel_arg_info paramName,
size_t paramValueSize, void *paramValue, size_t *paramValueSizeRet) const;

View File

@ -312,6 +312,20 @@ TEST_P(KernelTest, GivenKernelCompileWorkGroupSizeWhenGettingWorkGroupInfoThenCo
EXPECT_EQ(paramValueSize, paramValueSizeRet);
}
TEST_P(KernelTest, GivenInvalidParamNameWhenGettingWorkGroupInfoThenInvalidValueErrorIsReturned) {
size_t paramValueSizeRet = 0x1234u;
retVal = pKernel->getWorkGroupInfo(
pClDevice,
0,
0,
nullptr,
&paramValueSizeRet);
EXPECT_EQ(CL_INVALID_VALUE, retVal);
EXPECT_EQ(0x1234u, paramValueSizeRet);
}
INSTANTIATE_TEST_CASE_P(KernelTests,
KernelTest,
::testing::Combine(