@@ -966,6 +966,34 @@ TEST_F(DeviceTest, givenDevicePropertiesStructureWhenDevicePropertiesCalledThenA
966
966
EXPECT_NE (deviceProperties.maxMemAllocSize , devicePropertiesBefore.maxMemAllocSize );
967
967
}
968
968
969
+ TEST_F (DeviceTest, WhenRequestingZeEuCountThenExpectedEUsAreReturned) {
970
+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
971
+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_EU_COUNT_EXT};
972
+ deviceProperties.pNext = &ze_eu_count_desc;
973
+
974
+ uint32_t maxEuPerSubSlice = 48 ;
975
+ uint32_t subSliceCount = 8 ;
976
+ uint32_t sliceCount = 1 ;
977
+
978
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .MaxEuPerSubSlice = maxEuPerSubSlice;
979
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SubSliceCount = subSliceCount;
980
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SliceCount = sliceCount;
981
+
982
+ device->getProperties (&deviceProperties);
983
+
984
+ uint32_t expectedEUs = maxEuPerSubSlice * subSliceCount * sliceCount;
985
+
986
+ EXPECT_EQ (expectedEUs, ze_eu_count_desc.numTotalEUs );
987
+ }
988
+
989
+ TEST_F (DeviceTest, WhenRequestingZeEuCountWithIncorrectStypeThenPNextIsIgnored) {
990
+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
991
+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_SCHEDULING_HINT_EXP_PROPERTIES};
992
+ deviceProperties.pNext = &ze_eu_count_desc;
993
+ device->getProperties (&deviceProperties);
994
+ EXPECT_EQ (0u , ze_eu_count_desc.numTotalEUs );
995
+ }
996
+
969
997
TEST_F (DeviceTest, WhenGettingDevicePropertiesThenSubslicesPerSliceIsBasedOnSubslicesSupported) {
970
998
ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
971
999
deviceProperties.type = ZE_DEVICE_TYPE_GPU;
@@ -1640,6 +1668,27 @@ TEST_F(MultipleDevicesDisabledImplicitScalingTest, whenCallingGetMemoryPropertie
1640
1668
EXPECT_EQ (memProperties.totalSize , device0->getNEODevice ()->getDeviceInfo ().globalMemSize / numSubDevices);
1641
1669
}
1642
1670
1671
+ TEST_F (MultipleDevicesEnabledImplicitScalingTest, WhenRequestingZeEuCountThenExpectedEUsAreReturned) {
1672
+ ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
1673
+ ze_eu_count_ext_t ze_eu_count_desc = {ZE_STRUCTURE_TYPE_EU_COUNT_EXT};
1674
+ deviceProperties.pNext = &ze_eu_count_desc;
1675
+
1676
+ uint32_t maxEuPerSubSlice = 48 ;
1677
+ uint32_t subSliceCount = 8 ;
1678
+ uint32_t sliceCount = 1 ;
1679
+
1680
+ L0::Device *device = driverHandle->devices [0 ];
1681
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .MaxEuPerSubSlice = maxEuPerSubSlice;
1682
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SubSliceCount = subSliceCount;
1683
+ device->getNEODevice ()->getRootDeviceEnvironment ().getMutableHardwareInfo ()->gtSystemInfo .SliceCount = sliceCount;
1684
+
1685
+ device->getProperties (&deviceProperties);
1686
+
1687
+ uint32_t expectedEUs = maxEuPerSubSlice * subSliceCount * sliceCount;
1688
+
1689
+ EXPECT_EQ (expectedEUs * numSubDevices, ze_eu_count_desc.numTotalEUs );
1690
+ }
1691
+
1643
1692
TEST_F (MultipleDevicesEnabledImplicitScalingTest, whenCallingGetMemoryPropertiesWithSubDevicesThenCorrectSizeReturned) {
1644
1693
L0::Device *device0 = driverHandle->devices [0 ];
1645
1694
uint32_t count = 1 ;
0 commit comments