@@ -1102,7 +1102,7 @@ DebugSession *DeviceImp::createDebugSession(const zet_debug_config_t &config, ze
11021102 return debugSession.get ();
11031103}
11041104
1105- bool DeviceImp::toPhysicalSliceId (const NEO::TopologyMap &topologyMap, uint32_t &slice, uint32_t &deviceIndex) {
1105+ bool DeviceImp::toPhysicalSliceId (const NEO::TopologyMap &topologyMap, uint32_t &slice, uint32_t &subslice, uint32_t & deviceIndex) {
11061106 auto hwInfo = neoDevice->getRootDeviceEnvironment ().getHardwareInfo ();
11071107 uint32_t subDeviceCount = NEO::HwHelper::getSubDevicesCount (hwInfo);
11081108 auto deviceBitfield = neoDevice->getDeviceBitfield ();
@@ -1112,6 +1112,11 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
11121112 for (uint32_t i = 0 ; i < topologyMap.size (); i++) {
11131113 if (sliceId < topologyMap.at (i).sliceIndices .size ()) {
11141114 slice = topologyMap.at (i).sliceIndices [sliceId];
1115+
1116+ if (topologyMap.at (i).sliceIndices .size () == 1 ) {
1117+ uint32_t subsliceId = subslice;
1118+ subslice = topologyMap.at (i).subsliceIndices [subsliceId];
1119+ }
11151120 deviceIndex = i;
11161121 return true ;
11171122 }
@@ -1125,6 +1130,11 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
11251130 if (slice < topologyMap.at (subDeviceIndex).sliceIndices .size ()) {
11261131 deviceIndex = subDeviceIndex;
11271132 slice = topologyMap.at (subDeviceIndex).sliceIndices [slice];
1133+
1134+ if (topologyMap.at (subDeviceIndex).sliceIndices .size () == 1 ) {
1135+ uint32_t subsliceId = subslice;
1136+ subslice = topologyMap.at (subDeviceIndex).subsliceIndices [subsliceId];
1137+ }
11281138 return true ;
11291139 }
11301140 }
@@ -1133,7 +1143,7 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
11331143 return false ;
11341144}
11351145
1136- bool DeviceImp::toApiSliceId (const NEO::TopologyMap &topologyMap, uint32_t &slice, uint32_t deviceIndex) {
1146+ bool DeviceImp::toApiSliceId (const NEO::TopologyMap &topologyMap, uint32_t &slice, uint32_t &subslice, uint32_t deviceIndex) {
11371147 auto deviceBitfield = neoDevice->getDeviceBitfield ();
11381148
11391149 if (isSubdevice) {
@@ -1153,6 +1163,13 @@ bool DeviceImp::toApiSliceId(const NEO::TopologyMap &topologyMap, uint32_t &slic
11531163 if (static_cast <uint32_t >(topologyMap.at (deviceIndex).sliceIndices [i]) == slice) {
11541164 apiSliceId += i;
11551165 slice = apiSliceId;
1166+ if (topologyMap.at (deviceIndex).sliceIndices .size () == 1 ) {
1167+ for (uint32_t subsliceApiId = 0 ; subsliceApiId < topologyMap.at (deviceIndex).subsliceIndices .size (); subsliceApiId++) {
1168+ if (static_cast <uint32_t >(topologyMap.at (deviceIndex).subsliceIndices [subsliceApiId]) == subslice) {
1169+ subslice = subsliceApiId;
1170+ }
1171+ }
1172+ }
11561173 return true ;
11571174 }
11581175 }
0 commit comments