@@ -1102,7 +1102,7 @@ DebugSession *DeviceImp::createDebugSession(const zet_debug_config_t &config, ze
1102
1102
return debugSession.get ();
1103
1103
}
1104
1104
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) {
1106
1106
auto hwInfo = neoDevice->getRootDeviceEnvironment ().getHardwareInfo ();
1107
1107
uint32_t subDeviceCount = NEO::HwHelper::getSubDevicesCount (hwInfo);
1108
1108
auto deviceBitfield = neoDevice->getDeviceBitfield ();
@@ -1112,6 +1112,11 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
1112
1112
for (uint32_t i = 0 ; i < topologyMap.size (); i++) {
1113
1113
if (sliceId < topologyMap.at (i).sliceIndices .size ()) {
1114
1114
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
+ }
1115
1120
deviceIndex = i;
1116
1121
return true ;
1117
1122
}
@@ -1125,6 +1130,11 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
1125
1130
if (slice < topologyMap.at (subDeviceIndex).sliceIndices .size ()) {
1126
1131
deviceIndex = subDeviceIndex;
1127
1132
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
+ }
1128
1138
return true ;
1129
1139
}
1130
1140
}
@@ -1133,7 +1143,7 @@ bool DeviceImp::toPhysicalSliceId(const NEO::TopologyMap &topologyMap, uint32_t
1133
1143
return false ;
1134
1144
}
1135
1145
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) {
1137
1147
auto deviceBitfield = neoDevice->getDeviceBitfield ();
1138
1148
1139
1149
if (isSubdevice) {
@@ -1153,6 +1163,13 @@ bool DeviceImp::toApiSliceId(const NEO::TopologyMap &topologyMap, uint32_t &slic
1153
1163
if (static_cast <uint32_t >(topologyMap.at (deviceIndex).sliceIndices [i]) == slice) {
1154
1164
apiSliceId += i;
1155
1165
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
+ }
1156
1173
return true ;
1157
1174
}
1158
1175
}
0 commit comments