Remove maxWorkGroupSize parameter from provideLocalWorkGroupSizeHints

Change-Id: I2317fce1c39800b9c94678e6c4c5c32a8d26d6a1
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2019-09-13 13:41:40 +02:00
committed by sys_ocldev
parent 5d640e7100
commit d31ba78221
4 changed files with 18 additions and 19 deletions

View File

@@ -82,7 +82,7 @@ inline uint32_t calculateDispatchDim(Vec3<size_t> dispatchSize, Vec3<size_t> dis
Vec3<size_t> canonizeWorkgroup( Vec3<size_t> canonizeWorkgroup(
Vec3<size_t> workgroup); Vec3<size_t> workgroup);
void provideLocalWorkGroupSizeHints(Context *context, uint32_t maxWorkGroupSize, DispatchInfo dispatchInfo); void provideLocalWorkGroupSizeHints(Context *context, DispatchInfo dispatchInfo);
inline cl_uint computeDimensions(const size_t workItems[3]) { inline cl_uint computeDimensions(const size_t workItems[3]) {
return (workItems[2] > 1) ? 3 : (workItems[1] > 1) ? 2 : 1; return (workItems[2] > 1) ? 3 : (workItems[1] > 1) ? 2 : 1;

View File

@@ -117,9 +117,8 @@ void HardwareInterface<GfxFamily>::dispatchKernelCommands(CommandQueue &commandQ
DEBUG_BREAK_IF(!(dispatchInfo.getOffset().y == 0 || dispatchInfo.getDim() >= 2)); DEBUG_BREAK_IF(!(dispatchInfo.getOffset().y == 0 || dispatchInfo.getDim() >= 2));
// If we don't have a required WGS, compute one opportunistically // If we don't have a required WGS, compute one opportunistically
auto maxWorkGroupSize = static_cast<uint32_t>(commandQueue.getDevice().getDeviceInfo().maxWorkGroupSize);
if (commandType == CL_COMMAND_NDRANGE_KERNEL) { if (commandType == CL_COMMAND_NDRANGE_KERNEL) {
provideLocalWorkGroupSizeHints(commandQueue.getContextPtr(), maxWorkGroupSize, dispatchInfo); provideLocalWorkGroupSizeHints(commandQueue.getContextPtr(), dispatchInfo);
} }
//Get dispatch geometry //Get dispatch geometry

View File

@@ -448,7 +448,7 @@ Vec3<size_t> canonizeWorkgroup(Vec3<size_t> workgroup) {
: Vec3<size_t>(0, 0, 0)); : Vec3<size_t>(0, 0, 0));
} }
void provideLocalWorkGroupSizeHints(Context *context, uint32_t maxWorkGroupSize, DispatchInfo dispatchInfo) { void provideLocalWorkGroupSizeHints(Context *context, DispatchInfo dispatchInfo) {
if (context != nullptr && context->isProvidingPerformanceHints() && dispatchInfo.getDim() <= 3) { if (context != nullptr && context->isProvidingPerformanceHints() && dispatchInfo.getDim() <= 3) {
size_t preferredWorkGroupSize[3]; size_t preferredWorkGroupSize[3];

View File

@@ -199,14 +199,14 @@ TEST_F(PerformanceHintTest, GivenContextWhenSVMAllocIsCreatingThenContextProvide
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
bool isWorkGroupSizeEnabled = DebugManager.flags.EnableComputeWorkSizeND.get(); bool isWorkGroupSizeEnabled = DebugManager.flags.EnableComputeWorkSizeND.get();
DebugManager.flags.EnableComputeWorkSizeND.set(true); DebugManager.flags.EnableComputeWorkSizeND.set(true);
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled); DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeNDIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -214,14 +214,14 @@ TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableCompute
bool isWorkGroupSizeEnabled = DebugManager.flags.EnableComputeWorkSizeND.get(); bool isWorkGroupSizeEnabled = DebugManager.flags.EnableComputeWorkSizeND.get();
DebugManager.flags.EnableComputeWorkSizeND.set(false); DebugManager.flags.EnableComputeWorkSizeND.set(false);
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled); DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -229,7 +229,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableCompute
DebugManager.flags.EnableComputeWorkSizeSquared.set(true); DebugManager.flags.EnableComputeWorkSizeSquared.set(true);
DebugManager.flags.EnableComputeWorkSizeND.set(false); DebugManager.flags.EnableComputeWorkSizeND.set(false);
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -237,7 +237,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndEmptyDispatchinfoAndEnableCompute
DebugManager.flags.EnableComputeWorkSizeSquared.set(false); DebugManager.flags.EnableComputeWorkSizeSquared.set(false);
DebugManager.flags.EnableComputeWorkSizeND.set(false); DebugManager.flags.EnableComputeWorkSizeND.set(false);
DispatchInfo emptyDispatchInfo; DispatchInfo emptyDispatchInfo;
provideLocalWorkGroupSizeHints(nullptr, 0, emptyDispatchInfo); provideLocalWorkGroupSizeHints(nullptr, emptyDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsDefaultWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -245,7 +245,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -254,7 +254,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled); DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeNDIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -264,7 +264,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled); DebugManager.flags.EnableComputeWorkSizeND.set(isWorkGroupSizeEnabled);
} }
@@ -273,7 +273,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -283,7 +283,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) { TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledThenItDoesntCrash) {
@@ -293,7 +293,7 @@ TEST_F(PerformanceHintTest, GivenNullContextAndInvalidDispatchinfoAndEnableCompu
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsDefaultWhenProvideLocalWorkGroupSizeIsCalledReturnValue) { TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsDefaultWhenProvideLocalWorkGroupSizeIsCalledReturnValue) {
@@ -301,7 +301,7 @@ TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeS
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 100, {32, 32, 32}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledReturnValue) { TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsTrueWhenProvideLocalWorkGroupSizeIsCalledReturnValue) {
@@ -311,7 +311,7 @@ TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeS
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 2, {32, 32, 1}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 2, {32, 32, 1}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledReturnValue) { TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeSquaredIsFalseWhenProvideLocalWorkGroupSizeIsCalledReturnValue) {
@@ -321,7 +321,7 @@ TEST_F(PerformanceHintTest, GivenContextAndDispatchinfoAndEnableComputeWorkSizeS
auto pDevice = castToObject<Device>(devices[0]); auto pDevice = castToObject<Device>(devices[0]);
MockKernelWithInternals mockKernel(*pDevice, context); MockKernelWithInternals mockKernel(*pDevice, context);
DispatchInfo invalidDispatchInfo(mockKernel, 2, {32, 32, 1}, {1, 1, 1}, {0, 0, 0}); DispatchInfo invalidDispatchInfo(mockKernel, 2, {32, 32, 1}, {1, 1, 1}, {0, 0, 0});
provideLocalWorkGroupSizeHints(context, 0, invalidDispatchInfo); provideLocalWorkGroupSizeHints(context, invalidDispatchInfo);
} }
TEST_F(PerformanceHintTest, GivenZeroCopyImageAndContextWhenCreateImageThenContextProvidesHintAboutAlignment) { TEST_F(PerformanceHintTest, GivenZeroCopyImageAndContextWhenCreateImageThenContextProvidesHintAboutAlignment) {