mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Improve scratch allocation size calculation
Change-Id: I627bea89ce31e7110976cb88f9e9266e08af590a
This commit is contained in:

committed by
sys_ocldev

parent
e6a9d30951
commit
bd16f4bf2b
@ -134,12 +134,6 @@ TEST(Device_GetCaps, validate) {
|
||||
EXPECT_GE((4 * GB) - (8 * KB), caps.maxMemAllocSize);
|
||||
EXPECT_LE(65536u, caps.imageMaxBufferSize);
|
||||
|
||||
if (sysInfo.EUCount > 0) {
|
||||
auto expected = sysInfo.MaxSubSlicesSupported * sysInfo.MaxEuPerSubSlice *
|
||||
sysInfo.ThreadCount / sysInfo.EUCount;
|
||||
EXPECT_EQ(expected, caps.computeUnitsUsedForScratch);
|
||||
}
|
||||
|
||||
EXPECT_GT(caps.maxWorkGroupSize, 0u);
|
||||
EXPECT_EQ(caps.maxWorkItemSizes[0], caps.maxWorkGroupSize);
|
||||
EXPECT_EQ(caps.maxWorkItemSizes[1], caps.maxWorkGroupSize);
|
||||
@ -218,20 +212,6 @@ TEST(Device_GetCaps, validateImage3DDimensions) {
|
||||
EXPECT_EQ(2048u, caps.image3DMaxDepth);
|
||||
}
|
||||
|
||||
TEST(DeviceGetCapsSimple, givenDeviceWhenEUCountIsZeroThenmaxWgsIsDefault) {
|
||||
auto hardwareInfo = hardwareInfoTable[productFamily];
|
||||
GT_SYSTEM_INFO sysInfo = *hardwareInfo->pSysInfo;
|
||||
sysInfo.EUCount = 0;
|
||||
HardwareInfo hwInfo = {hardwareInfo->pPlatform, hardwareInfo->pSkuTable, hardwareInfo->pWaTable, &sysInfo, hardwareInfo->capabilityTable};
|
||||
|
||||
auto device = std::unique_ptr<Device>(DeviceHelper<>::create(&hwInfo));
|
||||
const auto &caps = device->getDeviceInfo();
|
||||
|
||||
//default value
|
||||
uint32_t expected = 128u;
|
||||
EXPECT_EQ(expected, caps.maxWorkGroupSize);
|
||||
}
|
||||
|
||||
TEST(Device_GetCaps, givenDontForcePreemptionModeDebugVariableWhenCreateDeviceThenSetDefaultHwPreemptionMode) {
|
||||
DebugManagerStateRestore dbgRestorer;
|
||||
{
|
||||
|
@ -20,6 +20,7 @@
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "runtime/helpers/hw_helper.h"
|
||||
#include "unit_tests/fixtures/device_fixture.h"
|
||||
#include "test.h"
|
||||
|
||||
@ -80,6 +81,17 @@ BDWTEST_F(Gen8DeviceCaps, BdwProfilingTimerResolution) {
|
||||
EXPECT_EQ(80u, caps.outProfilingTimerResolution);
|
||||
}
|
||||
|
||||
BDWTEST_F(Gen8DeviceCaps, givenHwInfoWhenRequestedComputeUnitsUsedForScratchThenReturnValidValue) {
|
||||
const auto &hwInfo = pDevice->getHardwareInfo();
|
||||
auto &hwHelper = HwHelper::get(hwInfo.pPlatform->eRenderCoreFamily);
|
||||
|
||||
uint32_t expectedValue = hwInfo.pSysInfo->MaxSubSlicesSupported * hwInfo.pSysInfo->MaxEuPerSubSlice *
|
||||
hwInfo.pSysInfo->ThreadCount / hwInfo.pSysInfo->EUCount;
|
||||
|
||||
EXPECT_EQ(expectedValue, hwHelper.getComputeUnitsUsedForScratch(&hwInfo));
|
||||
EXPECT_EQ(expectedValue, pDevice->getDeviceInfo().computeUnitsUsedForScratch);
|
||||
}
|
||||
|
||||
typedef Test<DeviceFixture> BdwUsDeviceIdTest;
|
||||
|
||||
BDWTEST_F(BdwUsDeviceIdTest, isSimulationCap) {
|
||||
|
@ -20,6 +20,7 @@
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "runtime/helpers/hw_helper.h"
|
||||
#include "unit_tests/fixtures/device_fixture.h"
|
||||
|
||||
#include "test.h"
|
||||
@ -57,3 +58,14 @@ GEN9TEST_F(Gen9DeviceCaps, whitelistedRegisters) {
|
||||
GEN9TEST_F(Gen9DeviceCaps, compression) {
|
||||
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.ftrCompression);
|
||||
}
|
||||
|
||||
GEN9TEST_F(Gen9DeviceCaps, givenHwInfoWhenRequestedComputeUnitsUsedForScratchThenReturnValidValue) {
|
||||
const auto &hwInfo = pDevice->getHardwareInfo();
|
||||
auto &hwHelper = HwHelper::get(hwInfo.pPlatform->eRenderCoreFamily);
|
||||
|
||||
uint32_t expectedValue = hwInfo.pSysInfo->MaxSubSlicesSupported * hwInfo.pSysInfo->MaxEuPerSubSlice *
|
||||
hwInfo.pSysInfo->ThreadCount / hwInfo.pSysInfo->EUCount;
|
||||
|
||||
EXPECT_EQ(expectedValue, hwHelper.getComputeUnitsUsedForScratch(&hwInfo));
|
||||
EXPECT_EQ(expectedValue, pDevice->getDeviceInfo().computeUnitsUsedForScratch);
|
||||
}
|
||||
|
Reference in New Issue
Block a user