From b4e212a0f960418460b7471c0ccd8542e8e04c8f Mon Sep 17 00:00:00 2001 From: Vladislav Sytchenko Date: Wed, 11 Nov 2020 10:20:12 -0500 Subject: [PATCH] [PAL] Force large buffer mappings to use pinned memory PAL doesn't perform chunking for system memory allocations, hence we should fall back to using pinned memory for mapping large buffers. Change-Id: I1b472616b72d12ed0105fb65532acacdb98ac7b3 --- rocclr/device/pal/palmemory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rocclr/device/pal/palmemory.cpp b/rocclr/device/pal/palmemory.cpp index 347ba6d91c..41ee868d4a 100644 --- a/rocclr/device/pal/palmemory.cpp +++ b/rocclr/device/pal/palmemory.cpp @@ -747,7 +747,8 @@ void* Memory::allocMapTarget(const amd::Coord3D& origin, const amd::Coord3D& reg owner()->commitSvmMemory(); } - if (owner()->numDevices() > 1) { + constexpr size_t largeAlloc = (1ull << 31); + if ((owner()->numDevices() > 1) || (owner()->getSize() > largeAlloc)) { if ((nullptr == initHostPtr) && (owner()->getHostMem() == nullptr)) { static const bool forceAllocHostMem = true; if (!owner()->allocHostMemory(nullptr, forceAllocHostMem)) {