kfdtest: Make queue evict tests use constant number of wavefronts.

Previously, KFDEvictTest.QueueTest and KFDSVMEvictTest.QueueTest
would create a variable number of wavefronts, one for each 64MB
of memory under test. This ran into limits on the buffers used
by the wavefronts, and may at some point have exceeded the
wavefront limit.

Restrict the number of wavefronts to 512, and adjust the shader
to accomodate a variable buffer size

Signed-off-by: David Francis <David.Francis@amd.com>
Change-Id: I2ec292e2900e2efa62a08313bca3d2f4bdabca8b
이 커밋은 다음에 포함됨:
David Francis
2023-01-17 10:42:03 -05:00
커밋한 사람 Graham Sider
부모 831d1ad352
커밋 680c8ca5a9
4개의 변경된 파일45개의 추가작업 그리고 9개의 파일을 삭제
+9 -2
파일 보기
@@ -523,6 +523,7 @@ const char *PersistentIterateIsa = SHADER_MACROS R"(
* v[2:3] - address of corresponding local buf address offset: s[0:1] + v0 * 8
* v[4:5] - corresponding output buf address: s[2:3] + v0 * 4
* v[6:7] - local buf address used for read test
* v11 - size of local buffer in MB
*/
const char *ReadMemoryIsa = SHADER_MACROS R"(
// Compute address of corresponding output buffer
@@ -538,6 +539,13 @@ const char *ReadMemoryIsa = SHADER_MACROS R"(
v_mov_b32 v3, s1 // v[2:3] = s[0:1] + v0 * 8
V_ADD_CO_CI_U32 v3, v3, 0 // v[2:3] = s[0:1] + v0 * 8
//Load local buffer size from output buffer
.if (.amdgcn.gfx_generation_number == 9 && .amdgcn.gfx_generation_minor == 4 && .amdgcn.gfx_generation_stepping == 0)
flat_load_dword v11, v[4:5] nt sc1 sc0
.else
flat_load_dword v11, v[4:5] slc
.endif
// Load 64bit local buffer address stored at v[2:3] to v[6:7]
.if (.amdgcn.gfx_generation_number == 9 && .amdgcn.gfx_generation_minor == 4 && .amdgcn.gfx_generation_stepping == 0)
flat_load_dwordx2 v[6:7], v[2:3] nt sc1 sc0
@@ -553,11 +561,10 @@ const char *ReadMemoryIsa = SHADER_MACROS R"(
s_cmp_eq_i32 s16, s8
s_cbranch_scc1 L_QUIT // if notified to quit by host
// Loop read 64M local buffer starting at v[6:7]
// Loop read local buffer starting at v[6:7]
// every 4k page only read once
v_mov_b32 v9, 0
v_mov_b32 v10, 0x1000 // 4k page
v_mov_b32 v11, 0x4000000 // 64M size
v_mov_b32 v12, v6
v_mov_b32 v13, v7
L_LOOP_READ: