mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Utilize shortened version of optimal HW thread count in nx4 scenarios.
- also clean early return if simd size = 0 Change-Id: I9b01df091ab6dd6a3066d1a8762c7fb1530c2804
This commit is contained in:
@ -58,13 +58,6 @@ TEST(localWorkSizeTest, given1DimWorkGroupAndSimdEqual8WhenComputeCalledThenLoca
|
||||
EXPECT_EQ(workGroupSize[0], 9u);
|
||||
EXPECT_EQ(workGroupSize[1], 1u);
|
||||
EXPECT_EQ(workGroupSize[2], 1u);
|
||||
|
||||
workGroup[0] = 128;
|
||||
wsInfo.simdSize = 0;
|
||||
OCLRT::computeWorkgroupSizeND(wsInfo, workGroupSize, workGroup, workDim);
|
||||
EXPECT_EQ(workGroupSize[0], 1u);
|
||||
EXPECT_EQ(workGroupSize[1], 1u);
|
||||
EXPECT_EQ(workGroupSize[2], 1u);
|
||||
}
|
||||
|
||||
TEST(localWorkSizeTest, given1DimWorkGroupAndSimdEqual32WhenComputeCalledThenLocalGroupComputed) {
|
||||
@ -317,6 +310,27 @@ TEST(localWorkSizeTest, givenKernelWithTileYImagesAndNoBarriersWhenWorkgroupSize
|
||||
EXPECT_EQ(workGroupSize[2], 1u);
|
||||
}
|
||||
|
||||
TEST(localWorkSizeTest, givenSimd16KernelWithTileYImagesAndNoBarriersWhenWorkgroupSizeIsComputedThenItMimicsTilingPattern) {
|
||||
WorkSizeInfo wsInfo(256, false, 16, 0u, platformDevices[0]->pPlatform->eRenderCoreFamily, 32u, 0u, true, true);
|
||||
uint32_t workDim = 2;
|
||||
size_t workGroup[3] = {1, 1, 1};
|
||||
size_t workGroupSize[3];
|
||||
|
||||
workGroup[0] = 2048;
|
||||
workGroup[1] = 2048;
|
||||
OCLRT::computeWorkgroupSizeND(wsInfo, workGroupSize, workGroup, workDim);
|
||||
EXPECT_EQ(workGroupSize[0], 32u);
|
||||
EXPECT_EQ(workGroupSize[1], 4u);
|
||||
EXPECT_EQ(workGroupSize[2], 1u);
|
||||
|
||||
workGroup[0] = 1920;
|
||||
workGroup[1] = 1080;
|
||||
OCLRT::computeWorkgroupSizeND(wsInfo, workGroupSize, workGroup, workDim);
|
||||
EXPECT_EQ(workGroupSize[0], 32u);
|
||||
EXPECT_EQ(workGroupSize[1], 4u);
|
||||
EXPECT_EQ(workGroupSize[2], 1u);
|
||||
}
|
||||
|
||||
TEST(localWorkSizeTest, givenKernelWithTwoDimensionalGlobalSizesWhenLwsIsComputedThenItHasMaxWorkgroupSize) {
|
||||
WorkSizeInfo wsInfo(256, 0u, 32, 0u, platformDevices[0]->pPlatform->eRenderCoreFamily, 32u, 0u, false, false);
|
||||
uint32_t workDim = 2;
|
||||
|
Reference in New Issue
Block a user