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)) {