From e93868b503786c97c6bb49a96c7715e6237c421d Mon Sep 17 00:00:00 2001 From: Yifan Zhang Date: Wed, 15 Feb 2023 18:18:51 +0800 Subject: [PATCH] Fix rocrtstFunc.Memory_Available failure for APUs w/ small VRAM. Signed-off-by: Yifan Zhang Change-Id: I0e9d5f1880c0e484e88ed424888d94d1bcac4d53 [ROCm/ROCR-Runtime commit: 9bab46130ada71d21f04957988c9639ba76f9d3c] --- .../rocrtst/suites/functional/memory_basic.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/projects/rocr-runtime/rocrtst/suites/functional/memory_basic.cc b/projects/rocr-runtime/rocrtst/suites/functional/memory_basic.cc index 0f2dc99dd6..37aafca575 100755 --- a/projects/rocr-runtime/rocrtst/suites/functional/memory_basic.cc +++ b/projects/rocr-runtime/rocrtst/suites/functional/memory_basic.cc @@ -268,7 +268,7 @@ void MemoryTest::MemAvailableTest(hsa_agent_t ag, hsa_amd_memory_pool_t pool) { rocrtst::pool_info_t pool_i; char ag_name[64]; hsa_device_type_t ag_type; - uint64_t ag_avail_memory_before, ag_avail_memory_after; + uint64_t allocate_sz2, ag_avail_memory_before, ag_avail_memory_after; err = hsa_agent_get_info(ag, HSA_AGENT_INFO_NAME, ag_name); ASSERT_EQ(err, HSA_STATUS_SUCCESS); @@ -325,8 +325,12 @@ void MemoryTest::MemAvailableTest(hsa_agent_t ag, hsa_amd_memory_pool_t pool) { // Memory available after could be smaller because of fragmentation ASSERT_GE(ag_avail_memory_before - allocate_sz1, ag_avail_memory_after); - // Try to allocate 80% of remaining - uint64_t allocate_sz2 = (0.8 * ag_avail_memory_after * gran_sz) / gran_sz; + // Try to allocate 30%/80% of remaining + if (pool_i.aggregate_alloc_max <= 536870912) + allocate_sz2 = (0.3 * ag_avail_memory_after * gran_sz) / gran_sz; + else + allocate_sz2 = (0.8 * ag_avail_memory_after * gran_sz) / gran_sz; + err = hsa_amd_memory_pool_allocate(pool, allocate_sz2, 0, &memPtr2); if (err != HSA_STATUS_SUCCESS) hsa_memory_free(memPtr1);