diff --git a/tests/kfdtest/src/KFDSVMRangeTest.cpp b/tests/kfdtest/src/KFDSVMRangeTest.cpp index 283a567ff4..5bdcf5b80f 100644 --- a/tests/kfdtest/src/KFDSVMRangeTest.cpp +++ b/tests/kfdtest/src/KFDSVMRangeTest.cpp @@ -997,9 +997,18 @@ TEST_F(KFDSVMRangeTest, MultiGPUMigrationTest) { return; } - const std::vector gpuNodes = m_NodeInfo.GetNodesWithGPU(); + const std::vector gpuNodesAll = m_NodeInfo.GetNodesWithGPU(); + std::vector gpuNodes; + + for (int i : gpuNodesAll) { + const HsaNodeProperties *pNodeProperties; + + pNodeProperties = m_NodeInfo.GetNodeProperties(gpuNodesAll.at(i)); + if (pNodeProperties->Capability.ui32.SVMAPISupported) + gpuNodes.push_back(gpuNodesAll.at(i)); + } if (gpuNodes.size() < 2) { - LOG() << "Skipping test: at least two GPUs needed." << std::endl; + LOG() << "Skipping test: at least two SVM supported GPUs needed." << std::endl; return; } @@ -1072,9 +1081,18 @@ TEST_F(KFDSVMRangeTest, MultiGPUAccessInPlaceTest) { return; } - const std::vector gpuNodes = m_NodeInfo.GetNodesWithGPU(); + const std::vector gpuNodesAll = m_NodeInfo.GetNodesWithGPU(); + std::vector gpuNodes; + + for (int i : gpuNodesAll) { + const HsaNodeProperties *pNodeProperties; + + pNodeProperties = m_NodeInfo.GetNodeProperties(gpuNodesAll.at(i)); + if (pNodeProperties->Capability.ui32.SVMAPISupported) + gpuNodes.push_back(gpuNodesAll.at(i)); + } if (gpuNodes.size() < 2) { - LOG() << "Skipping test: at least two GPUs needed." << std::endl; + LOG() << "Skipping test: at least two SVM supported GPUs needed." << std::endl; return; }