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> 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]) {
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));
// 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) {
provideLocalWorkGroupSizeHints(commandQueue.getContextPtr(), maxWorkGroupSize, dispatchInfo);
provideLocalWorkGroupSizeHints(commandQueue.getContextPtr(), dispatchInfo);
}
//Get dispatch geometry

View File

@@ -448,7 +448,7 @@ Vec3<size_t> canonizeWorkgroup(Vec3<size_t> workgroup) {
: 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) {
size_t preferredWorkGroupSize[3];

View File

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