diff --git a/projects/hip/tests/src/runtimeApi/memory/hipMemcpy.cpp b/projects/hip/tests/src/runtimeApi/memory/hipMemcpy.cpp index 208f263ab5..2d03b95e0f 100644 --- a/projects/hip/tests/src/runtimeApi/memory/hipMemcpy.cpp +++ b/projects/hip/tests/src/runtimeApi/memory/hipMemcpy.cpp @@ -292,8 +292,12 @@ void memcpytest2_get_host_memory(size_t& free, size_t& total) { MEMORYSTATUSEX status; status.dwLength = sizeof(status); GlobalMemoryStatusEx(&status); - free = status.ullAvailPhys; - total = status.ullTotalPhys; + // Windows doesn't allow allocating more than half of system memory to the gpu. + // Since the runtime also needs space for its internal allocations, + // we should not try to allocate more than 40% of reported system memory, + // otherwise we can run into OOM issues. + free = static_cast(0.4 * status.ullAvailPhys); + total = static_cast(0.4 * status.ullTotalPhys); } #else struct sysinfo memInfo;