[arrayfire] 41/75: Adding function to check if memory usage is approaching the limits
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:01:14 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch dfsg-clean
in repository arrayfire.
commit e4facbb73c5c06095514d177e75adff467c7111e
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Sun Feb 21 22:21:27 2016 -0500
Adding function to check if memory usage is approaching the limits
---
src/backend/MemoryManager.cpp | 9 +++++++--
src/backend/MemoryManager.hpp | 2 ++
src/backend/cpu/memory.cpp | 5 +++++
src/backend/cpu/memory.hpp | 1 +
src/backend/cuda/memory.cpp | 5 +++++
src/backend/cuda/memory.hpp | 2 ++
src/backend/opencl/memory.cpp | 5 +++++
src/backend/opencl/memory.hpp | 1 +
8 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/src/backend/MemoryManager.cpp b/src/backend/MemoryManager.cpp
index b66dfc3..0879e98 100644
--- a/src/backend/MemoryManager.cpp
+++ b/src/backend/MemoryManager.cpp
@@ -153,8 +153,7 @@ void *MemoryManager::alloc(const size_t bytes, bool user_lock)
// FIXME: Add better checks for garbage collection
// Perhaps look at total memory available as a metric
- if (current.lock_bytes >= current.max_bytes ||
- current.total_buffers >= this->max_buffers) {
+ if (this->checkMemoryLimit()) {
this->garbageCollect();
}
@@ -305,4 +304,10 @@ unsigned MemoryManager::getMaxBuffers()
return this->max_buffers;
}
+bool MemoryManager::checkMemoryLimit()
+{
+ memory_info& current = this->getCurrentMemoryInfo();
+ return current.lock_bytes >= current.max_bytes || current.total_buffers >= this->max_buffers;
+}
+
}
diff --git a/src/backend/MemoryManager.hpp b/src/backend/MemoryManager.hpp
index 015fa6d..0db70b5 100644
--- a/src/backend/MemoryManager.hpp
+++ b/src/backend/MemoryManager.hpp
@@ -111,6 +111,8 @@ public:
{
}
+ bool checkMemoryLimit();
+
protected:
mutex_t memory_mutex;
diff --git a/src/backend/cpu/memory.cpp b/src/backend/cpu/memory.cpp
index 016428a..8837e27 100644
--- a/src/backend/cpu/memory.cpp
+++ b/src/backend/cpu/memory.cpp
@@ -160,6 +160,11 @@ void pinnedFree(T* ptr)
return getMemoryManager().unlock((void *)ptr, false);
}
+bool checkMemoryLimit()
+{
+ return getMemoryManager().checkMemoryLimit();
+}
+
#define INSTANTIATE(T) \
template T* memAlloc(const size_t &elements); \
template void memFree(T* ptr); \
diff --git a/src/backend/cpu/memory.hpp b/src/backend/cpu/memory.hpp
index 80ee86d..91116fb 100644
--- a/src/backend/cpu/memory.hpp
+++ b/src/backend/cpu/memory.hpp
@@ -39,4 +39,5 @@ namespace cpu
void setMemStepSize(size_t step_bytes);
size_t getMemStepSize(void);
+ bool checkMemoryLimit();
}
diff --git a/src/backend/cuda/memory.cpp b/src/backend/cuda/memory.cpp
index ff62661..51eb507 100644
--- a/src/backend/cuda/memory.cpp
+++ b/src/backend/cuda/memory.cpp
@@ -229,6 +229,11 @@ void pinnedFree(T* ptr)
return getMemoryManagerPinned().unlock((void *)ptr, false);
}
+bool checkMemoryLimit()
+{
+ return getMemoryManager().checkMemoryLimit();
+}
+
#define INSTANTIATE(T) \
template T* memAlloc(const size_t &elements); \
template void memFree(T* ptr); \
diff --git a/src/backend/cuda/memory.hpp b/src/backend/cuda/memory.hpp
index 9bf69df..80478c1 100644
--- a/src/backend/cuda/memory.hpp
+++ b/src/backend/cuda/memory.hpp
@@ -39,4 +39,6 @@ namespace cuda
void setMemStepSize(size_t step_bytes);
size_t getMemStepSize(void);
+
+ bool checkMemoryLimit();
}
diff --git a/src/backend/opencl/memory.cpp b/src/backend/opencl/memory.cpp
index 756d187..5df64d6 100644
--- a/src/backend/opencl/memory.cpp
+++ b/src/backend/opencl/memory.cpp
@@ -259,6 +259,11 @@ void pinnedFree(T* ptr)
return getMemoryManagerPinned().unlock((void *)ptr, false);
}
+bool checkMemoryLimit()
+{
+ return getMemoryManager().checkMemoryLimit();
+}
+
#define INSTANTIATE(T) \
template T* memAlloc(const size_t &elements); \
template void memFree(T* ptr); \
diff --git a/src/backend/opencl/memory.hpp b/src/backend/opencl/memory.hpp
index f4d06a3..a02d387 100644
--- a/src/backend/opencl/memory.hpp
+++ b/src/backend/opencl/memory.hpp
@@ -44,4 +44,5 @@ namespace opencl
void setMemStepSize(size_t step_bytes);
size_t getMemStepSize(void);
+ bool checkMemoryLimit();
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list