fix: return correct subDevice in DeviceImp::getActiveDevice()

Resolves: NEO-13759
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
This commit is contained in:
Jaroslaw Warchulski
2025-01-15 18:02:58 +00:00
committed by Compute-Runtime-Automation
parent a17745532c
commit 4cdd5671f7
2 changed files with 21 additions and 2 deletions

View File

@ -2024,11 +2024,15 @@ bool DeviceImp::toApiSliceId(const NEO::TopologyMap &topologyMap, uint32_t &slic
}
NEO::Device *DeviceImp::getActiveDevice() const {
if (neoDevice->getNumGenericSubDevices() > 1u) {
if (neoDevice->getNumGenericSubDevices() > 0u) {
if (isImplicitScalingCapable()) {
return this->neoDevice;
}
return this->neoDevice->getSubDevice(0);
for (auto subDevice : this->neoDevice->getSubDevices()) {
if (subDevice) {
return subDevice;
}
}
}
return this->neoDevice;
}

View File

@ -5984,6 +5984,21 @@ TEST(DeviceReturnCombinedHierarchyTest, GivenCombinedHierarchyIsSetAndEmptyAffin
multiDeviceFixture.tearDown();
}
TEST(DeviceReturnCombinedHierarchyTest, GivenCombinedHierarchyIsSetWithMaskThenActiveDeviceIsCorrect) {
DebugManagerStateRestore restorer;
NEO::debugManager.flags.ZE_AFFINITY_MASK.set("1");
MultiDeviceFixtureCombinedHierarchy multiDeviceFixture{};
multiDeviceFixture.setUp();
auto device = multiDeviceFixture.driverHandle->devices[0];
auto deviceImp = static_cast<L0::DeviceImp *>(device);
auto activeDevice = deviceImp->getActiveDevice();
EXPECT_EQ(activeDevice, device->getNEODevice()->getSubDevice(1u));
multiDeviceFixture.tearDown();
}
TEST(DeviceReturnFlatHierarchyTest, GivenFlatHierarchyIsSetThenFlagsOfDevicePropertiesIsCorrect) {
MultiDeviceFixtureFlatHierarchy multiDeviceFixture{};