From ad33680b30539ef293878a78a5a50cef2f4bf100 Mon Sep 17 00:00:00 2001 From: foreman Date: Fri, 6 Mar 2015 15:58:00 -0500 Subject: [PATCH] P4 to Git Change 1128337 by rili@rili_opencl_stg on 2015/03/06 14:37:45 EPR #415638 - Improve APU performance - Force remote allocation of local and persistent memory to Remote from RemoteUSWC: - Use gpu copy for remote/pinned image/buffer. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#114 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#211 edit [ROCm/clr commit: 637492a7dd3128b0f7a0fa7b7c9dd4d3bd23f1ce] --- projects/clr/rocclr/runtime/device/gpu/gpublit.cpp | 1 + projects/clr/rocclr/runtime/device/gpu/gpuresource.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/projects/clr/rocclr/runtime/device/gpu/gpublit.cpp b/projects/clr/rocclr/runtime/device/gpu/gpublit.cpp index 438dcdc141..c8f5eab22c 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpublit.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpublit.cpp @@ -547,6 +547,7 @@ DmaBlitManager::copyBuffer( { if (setup_.disableCopyBuffer_ || (gpuMem(srcMemory).isHostMemDirectAccess() && gpuMem(srcMemory).isCacheable() && + !dev().settings().apuSystem_ && gpuMem(dstMemory).isHostMemDirectAccess())) { return HostBlitManager::copyBuffer( srcMemory, dstMemory, srcOrigin, dstOrigin, size); diff --git a/projects/clr/rocclr/runtime/device/gpu/gpuresource.cpp b/projects/clr/rocclr/runtime/device/gpu/gpuresource.cpp index ffea2c9293..8c4eb36be7 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpuresource.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpuresource.cpp @@ -386,7 +386,12 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap) if (dev().settings().remoteAlloc_ && !heap && ((memoryType() == Local) || (memoryType() == Persistent))) { - cal_.type_ = RemoteUSWC; + if (dev().settings().apuSystem_ && dev().settings().viPlus_) { + cal_.type_ = Remote; + } + else { + cal_.type_ = RemoteUSWC; + } } if (dev().settings().disablePersistent_ && (memoryType() == Persistent)) {