kfdtest: add function to determine XGMI link to cpu
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I7650f7857f0eecd2ad587634ae11c1cf5116bd97
[ROCm/ROCR-Runtime commit: 198b5bd450]
This commit is contained in:
@@ -663,3 +663,26 @@ int HsaNodeInfo::FindAccessiblePeers(std::vector<HSAuint32> *peers, HSAuint32 ds
|
|||||||
|
|
||||||
return peers->size();
|
return peers->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool HsaNodeInfo::IsNodeXGMItoCPU(int node) const {
|
||||||
|
const HsaNodeProperties *pNodeProperties;
|
||||||
|
bool ret = false;
|
||||||
|
|
||||||
|
pNodeProperties = GetNodeProperties(node);
|
||||||
|
if (pNodeProperties && pNodeProperties->NumIOLinks) {
|
||||||
|
HsaIoLinkProperties *IolinkProperties = new HsaIoLinkProperties[pNodeProperties->NumIOLinks];
|
||||||
|
EXPECT_SUCCESS(hsaKmtGetNodeIoLinkProperties(node, pNodeProperties->NumIOLinks, IolinkProperties));
|
||||||
|
|
||||||
|
for (int linkId = 0; linkId < pNodeProperties->NumIOLinks; linkId++) {
|
||||||
|
EXPECT_EQ(node, IolinkProperties[linkId].NodeFrom);
|
||||||
|
const HsaNodeProperties *pNodeProperties0 =
|
||||||
|
GetNodeProperties(IolinkProperties[linkId].NodeTo);
|
||||||
|
if (pNodeProperties0->NumFComputeCores == 0 &&
|
||||||
|
IolinkProperties[linkId].IoLinkType == HSA_IOLINK_TYPE_XGMI)
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
|
delete [] IolinkProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|||||||
@@ -196,6 +196,11 @@ class HsaNodeInfo {
|
|||||||
const bool AreGPUNodesXGMI(int node0, int node1) const;
|
const bool AreGPUNodesXGMI(int node0, int node1) const;
|
||||||
int FindAccessiblePeers(std::vector<HSAuint32> *peers, HSAuint32 dstNode,
|
int FindAccessiblePeers(std::vector<HSAuint32> *peers, HSAuint32 dstNode,
|
||||||
bool bidirectional) const;
|
bool bidirectional) const;
|
||||||
|
/* @brief: to determine if the node is XGMI-linked to CPU
|
||||||
|
* @param: node index of the node we are looking at
|
||||||
|
* @return: bool true or false
|
||||||
|
*/
|
||||||
|
const bool IsNodeXGMItoCPU(int node) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __KFD__TEST__UTIL__H__
|
#endif // __KFD__TEST__UTIL__H__
|
||||||
|
|||||||
Reference in New Issue
Block a user