mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-23 03:01:20 +08:00
Remove maxWorkGroupSize parameter from provideLocalWorkGroupSizeHints
Change-Id: I2317fce1c39800b9c94678e6c4c5c32a8d26d6a1 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
5d640e7100
commit
d31ba78221
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user