kfdtest: Enable gfx90a coherency tests on Aqua Vanjaram

These tests should also pass on Aqua Vanjaram, so enable them

Signed-off-by: David Francis <David.Francis@amd.com>
Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Ibbb9cd43d653c63b08c39efd1d7326cfac1f8411


[ROCm/ROCR-Runtime commit: eed5518e4c]
Этот коммит содержится в:
David Francis
2023-01-05 14:31:57 -05:00
коммит произвёл Graham Sider
родитель b7dcb91b58
Коммит d6edf970cf
2 изменённых файлов: 27 добавлений и 17 удалений
+6 -6
Просмотреть файл
@@ -2191,8 +2191,8 @@ TEST_F(KFDMemoryTest, VramCacheCoherenceWithRemoteGPU) {
const int dwSource = 0x40 * sizeof(int); /* At 3rd cache line */
const int dwLocation = 0x80 * sizeof(int); /* At 5th cache line */
if (m_FamilyId != FAMILY_AL) {
LOG() << "Skipping test: Test requires aldebaran series asics." << std::endl;
if (m_FamilyId != FAMILY_AL && m_FamilyId != FAMILY_AV) {
LOG() << "Skipping test: Test requires aldebaran or aqua vanjaram series asics." << std::endl;
return;
}
@@ -2271,8 +2271,8 @@ TEST_F(KFDMemoryTest, VramCacheCoherenceWithCPU) {
TEST_REQUIRE_ENV_CAPABILITIES(ENVCAPS_64BITLINUX);
TEST_START(TESTPROFILE_RUNALL);
if (m_FamilyId != FAMILY_AL) {
LOG() << "Skipping test: Test requires aldebaran series asics." << std::endl;
if (m_FamilyId != FAMILY_AL && m_FamilyId != FAMILY_AV) {
LOG() << "Skipping test: Test requires aldebaran or aqua vanjaram series asics." << std::endl;
return;
}
@@ -2335,8 +2335,8 @@ TEST_F(KFDMemoryTest, SramCacheCoherenceWithGPU) {
TEST_REQUIRE_ENV_CAPABILITIES(ENVCAPS_64BITLINUX);
TEST_START(TESTPROFILE_RUNALL);
if (m_FamilyId != FAMILY_AL) {
LOG() << "Skipping test: Test requires aldebaran series asics." << std::endl;
if (m_FamilyId != FAMILY_AL && m_FamilyId != FAMILY_AV) {
LOG() << "Skipping test: Test requires aldebaran or aqua vanjaram series asics." << std::endl;
return;
}
+21 -11
Просмотреть файл
@@ -305,19 +305,26 @@ const char *CopyOnSignalIsa =
*/
const char *PollAndCopyIsa =
SHADER_START
SHADER_MACROS_FLAT
R"(
// Assume src buffer in s[0:1] and dst buffer in s[2:3]
.if (.amdgcn.gfx_generation_number == 9 && .amdgcn.gfx_generation_stepping == 10)
// Path for Aldebaran
// Path for Aldebaran, Aqua Vanjaram
.if (.amdgcn.gfx_generation_number == 9 &&
(.amdgcn.gfx_generation_minor == 4 ||
.amdgcn.gfx_generation_stepping == 10))
v_mov_b32 v0, s0
v_mov_b32 v1, s1
v_mov_b32 v18, 0x1
LOOP_ALDBRN:
flat_load_dword v16, v[0:1] glc
LOOP0:
FLAT_LOAD_DWORD_NSS v16, v[0:1] glc
s_waitcnt vmcnt(0) & lgkmcnt(0)
v_cmp_eq_i32 vcc, v16, v18
s_cbranch_vccz LOOP_ALDBRN
buffer_invl2
s_cbranch_vccz LOOP0
.if (.amdgcn.gfx_generation_minor == 4)
buffer_invl2 sc1 sc0
.else
buffer_invl2
.endif
s_load_dword s17, s[0:1], 0x4 glc
s_waitcnt vmcnt(0) & lgkmcnt(0)
s_store_dword s17, s[2:3], 0x0 glc
@@ -325,10 +332,10 @@ const char *PollAndCopyIsa =
buffer_wbl2
.elseif (.amdgcn.gfx_generation_number == 9)
s_movk_i32 s18, 0x1
LOOP:
LOOP1:
s_load_dword s16, s[0:1], 0x0 glc
s_cmp_eq_i32 s16, s18
s_cbranch_scc0 LOOP
s_cbranch_scc0 LOOP1
s_load_dword s17, s[0:1], 0x4 glc
s_waitcnt vmcnt(0) & lgkmcnt(0)
s_store_dword s17, s[2:3], 0x0 glc
@@ -344,13 +351,16 @@ const char *PollAndCopyIsa =
* Input1: A buffer of at least 2 dwords.
* DW0: used as the value to be written.
*
* Note: Only works on Aldebaran
* Note: Only works on Aldebaran and Aqua Vanjaram
*/
const char *WriteFlagAndValueIsa =
SHADER_START
SHADER_MACROS_FLAT
R"(
// Assume two inputs buffer in s[0:1] and s[2:3]
.if (.amdgcn.gfx_generation_number == 9 && .amdgcn.gfx_generation_stepping == 10)
.if (.amdgcn.gfx_generation_number == 9 &&
(.amdgcn.gfx_generation_minor == 4 ||
.amdgcn.gfx_generation_stepping == 10))
v_mov_b32 v0, s0
v_mov_b32 v1, s1
s_load_dword s18, s[2:3], 0x0 glc
@@ -360,7 +370,7 @@ const char *WriteFlagAndValueIsa =
buffer_wbl2
s_waitcnt vmcnt(0) & lgkmcnt(0)
v_mov_b32 v16, 0x1
flat_store_dword v[0:1], v16 glc
FLAT_STORE_DWORD_NSS v[0:1], v16 glc
.endif
s_endpgm
)";