From 1f112bced057d34f38b10fe9bdca8b1d757c15a9 Mon Sep 17 00:00:00 2001 From: Shane Xiao Date: Tue, 9 May 2023 16:36:55 +0800 Subject: [PATCH] kfdtest: DeviceHdpFlush need set target ASIC with different Gfx versions If Dev0 and Dev1 are not the same gfx, we should temporarily set the target ASIC for compiling Shader code. Signed-off-by: Shane Xiao Signed-off-by: Shikai Guo Change-Id: I5836beb16ade519f5a148d3d2b9c2875554f0c35 [ROCm/ROCR-Runtime commit: 5d6f900353d16b5e0c0c5ed9b9ee90f6180e22f3] --- .../tests/kfdtest/src/KFDMemoryTest.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDMemoryTest.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDMemoryTest.cpp index c161431d02..07f9803437 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDMemoryTest.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDMemoryTest.cpp @@ -1908,13 +1908,19 @@ TEST_F(KFDMemoryTest, DeviceHdpFlush) { } } + const HsaNodeProperties *pNodePropertiesDev1 = NULL; + unsigned int m_FamilyIdDev1 = 0; + pNodeProperties = m_NodeInfo.GetNodeProperties(nodes[0]); - if (!pNodeProperties) { + pNodePropertiesDev1 = m_NodeInfo.GetNodeProperties(nodes[1]); + if (!pNodeProperties || !pNodePropertiesDev1) { LOG() << "Failed to get gpu node properties." << std::endl; return; } - if (m_FamilyId < FAMILY_AI) { + m_FamilyIdDev1 = FamilyIdFromNode(pNodePropertiesDev1); + + if (m_FamilyId < FAMILY_AI || m_FamilyIdDev1 < FAMILY_AI) { LOG() << "Skipping test: Test requires gfx9 and later asics." << std::endl; return; } @@ -1969,7 +1975,9 @@ TEST_F(KFDMemoryTest, DeviceHdpFlush) { ASSERT_SUCCESS(queue0.Create(nodes[1])); HsaMemoryBuffer isaBuffer0(PAGE_SIZE, nodes[1], true/*zero*/, false/*local*/, true/*exec*/); - ASSERT_SUCCESS(m_pAsm->RunAssembleBuf(WriteAndSignalIsa, isaBuffer0.As())); + /* Temporarily set target ASIC for Dev1 */ + ASSERT_SUCCESS(m_pAsm->RunAssembleBuf(WriteAndSignalIsa, isaBuffer0.As(), + PAGE_SIZE, GetGfxVersion(pNodePropertiesDev1))); Dispatch dispatch0(isaBuffer0); dispatch0.SetArgs(buffer, mmioBase);