@@ -825,6 +825,34 @@ TEST_F(DeviceTest, givenDevicePropertiesStructureWhenDevicePropertiesCalledThenA
825825 EXPECT_NE (deviceProperties.maxMemAllocSize , devicePropertiesBefore.maxMemAllocSize );
826826}
827827
828+ TEST_F (DeviceTest, WhenRequestingZeEuCountThenExpectedEUsAreReturned) {
829+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
830+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_EU_COUNT_EXT};
831+ deviceProperties.pNext = &ze_eu_count_desc;
832+
833+ uint32_t maxEuPerSubSlice = 48 ;
834+ uint32_t subSliceCount = 8 ;
835+ uint32_t sliceCount = 1 ;
836+
837+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .MaxEuPerSubSlice = maxEuPerSubSlice;
838+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SubSliceCount = subSliceCount;
839+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SliceCount = sliceCount;
840+
841+ device->getProperties (&deviceProperties);
842+
843+ uint32_t expectedEUs = maxEuPerSubSlice * subSliceCount * sliceCount;
844+
845+ EXPECT_EQ (expectedEUs, ze_eu_count_desc.numTotalEUs );
846+ }
847+
848+ TEST_F (DeviceTest, WhenRequestingZeEuCountWithIncorrectStypeThenPNextIsIgnored) {
849+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
850+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_SCHEDULING_HINT_EXP_PROPERTIES};
851+ deviceProperties.pNext = &ze_eu_count_desc;
852+ device->getProperties (&deviceProperties);
853+ EXPECT_EQ (0u , ze_eu_count_desc.numTotalEUs );
854+ }
855+
828856TEST_F (DeviceTest, WhenGettingDevicePropertiesThenSubslicesPerSliceIsBasedOnSubslicesSupported) {
829857 ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
830858 deviceProperties.type = ZE_DEVICE_TYPE_GPU;
@@ -1499,6 +1527,27 @@ TEST_F(MultipleDevicesDisabledImplicitScalingTest, whenCallingGetMemoryPropertie
14991527 EXPECT_EQ (memProperties.totalSize , device0->getNEODevice ()->getDeviceInfo ().globalMemSize / numSubDevices);
15001528}
15011529
1530+ TEST_F (MultipleDevicesEnabledImplicitScalingTest, WhenRequestingZeEuCountThenExpectedEUsAreReturned) {
1531+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
1532+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_EU_COUNT_EXT};
1533+ deviceProperties.pNext = &ze_eu_count_desc;
1534+
1535+ uint32_t maxEuPerSubSlice = 48 ;
1536+ uint32_t subSliceCount = 8 ;
1537+ uint32_t sliceCount = 1 ;
1538+
1539+ L0::Device *device = driverHandle->devices [0 ];
1540+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .MaxEuPerSubSlice = maxEuPerSubSlice;
1541+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SubSliceCount = subSliceCount;
1542+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SliceCount = sliceCount;
1543+
1544+ device->getProperties (&deviceProperties);
1545+
1546+ uint32_t expectedEUs = maxEuPerSubSlice * subSliceCount * sliceCount;
1547+
1548+ EXPECT_EQ (expectedEUs * numSubDevices, ze_eu_count_desc.numTotalEUs );
1549+ }
1550+
15021551TEST_F (MultipleDevicesEnabledImplicitScalingTest, whenCallingGetMemoryPropertiesWithSubDevicesThenCorrectSizeReturned) {
15031552 L0::Device *device0 = driverHandle->devices [0 ];
15041553 uint32_t count = 1 ;
0 commit comments