From 228eeed2f2644c28fc2ba1057e1e276ff01208aa Mon Sep 17 00:00:00 2001
From: foreman
Date: Wed, 9 Sep 2015 17:09:47 -0400
Subject: [PATCH] P4 to Git Change 1189314 by gandryey@gera-w8 on 2015/09/09
16:57:25
ECR #304775 - Add DISABLE_DEFERRED_ALLOC key
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#121 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#240 edit
[ROCm/clr commit: 1420c01d90dbf0a89f6cc7f594f3ce1f6ec12842]
---
.../clr/rocclr/runtime/platform/memory.cpp | 23 ++++++++++++-------
projects/clr/rocclr/runtime/utils/flags.hpp | 2 ++
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/projects/clr/rocclr/runtime/platform/memory.cpp b/projects/clr/rocclr/runtime/platform/memory.cpp
index 1fcb5b0a0e..808dcf31da 100644
--- a/projects/clr/rocclr/runtime/platform/memory.cpp
+++ b/projects/clr/rocclr/runtime/platform/memory.cpp
@@ -282,12 +282,14 @@ Memory::create(void* initFrom, bool sysMemAlloc)
return false;
}
- bool ok = true;
-
const std::vector& devices = context_().devices();
+ // Forces system memory allocation on the device,
+ // instead of device memory
+ forceSysMemAlloc_ = sysMemAlloc;
+
// Create memory on all available devices
- for (size_t i = 0; ok && i < devices.size(); i++) {
+ for (size_t i = 0; i < devices.size(); i++) {
deviceAlloced_[devices[i]] = AllocInit;
// Only GPU devices have device memory objects
@@ -295,13 +297,18 @@ Memory::create(void* initFrom, bool sysMemAlloc)
deviceMemories_[i].ref_ = devices[i];
deviceMemories_[i].value_ = NULL;
}
+
+ if (DISABLE_DEFERRED_ALLOC) {
+ device::Memory* mem = getDeviceMemory(*devices[i]);
+ if (NULL == mem) {
+ LogPrintfError("Can't allocate memory size - 0x%08X bytes!",
+ getSize());
+ return false;
+ }
+ }
}
- // Forces system memory allocation on the device,
- // instead of device memory
- forceSysMemAlloc_ = sysMemAlloc;
-
- return ok;
+ return true;
}
bool
diff --git a/projects/clr/rocclr/runtime/utils/flags.hpp b/projects/clr/rocclr/runtime/utils/flags.hpp
index 12ad16adff..ab29641f09 100644
--- a/projects/clr/rocclr/runtime/utils/flags.hpp
+++ b/projects/clr/rocclr/runtime/utils/flags.hpp
@@ -166,6 +166,8 @@ release(bool, GPU_IFH_MODE, false, \
"1 = Enable GPU IFH (infinitely fast hardware) mode. Any other value keeps setting disabled.") \
release(bool, GPU_MIPMAP, true, \
"Enables GPU mipmap extension") \
+release(bool, DISABLE_DEFERRED_ALLOC, false, \
+ "Disables deferred memory allocation on device") \
release(int, AMD_GPU_FORCE_SINGLE_FP_DENORM, -1, \
"Force denorm for single precision: -1 - don't force, 0 - disable, 1 - enable") \
debug(bool, OCL_FORCE_CPU_SVM, false, \