From 19350d67b1c60b7944f53c536fa3becbd42fe4bc Mon Sep 17 00:00:00 2001 From: Lizzzka007 <gashchuk2011@mail.ru> Date: Sat, 16 Dec 2023 19:31:46 +0300 Subject: [PATCH] Add alloc --- include/MemoryProcessing.cuh | 3 +++ include/MemoryProcessing.h | 3 +++ src/MemoryProcessing.cpp | 10 ++++++++++ src/MemoryProcessing.cu | 9 +++++++++ 4 files changed, 25 insertions(+) diff --git a/include/MemoryProcessing.cuh b/include/MemoryProcessing.cuh index d3fb882..965117a 100644 --- a/include/MemoryProcessing.cuh +++ b/include/MemoryProcessing.cuh @@ -4,6 +4,9 @@ namespace memproc { + template <MemType memtype> + bool realloc(void *&array, const size_t new_size); + template <MemType memtype> bool realloc(void *&array, size_t &allocated_size, const size_t new_size); diff --git a/include/MemoryProcessing.h b/include/MemoryProcessing.h index 409d292..b3db1fe 100644 --- a/include/MemoryProcessing.h +++ b/include/MemoryProcessing.h @@ -4,6 +4,9 @@ namespace memproc { + template <MemType memtype> + bool alloc(void *&array, const size_t new_size); + template <MemType memtype> bool realloc(void *&array, size_t &allocated_size, const size_t new_size); diff --git a/src/MemoryProcessing.cpp b/src/MemoryProcessing.cpp index 8705f20..ecaa177 100644 --- a/src/MemoryProcessing.cpp +++ b/src/MemoryProcessing.cpp @@ -21,6 +21,16 @@ bool memproc::dealloc<MemType::CPU>(void *&array) return true; } +template <> +bool memproc::alloc<MemType::CPU>(void *&array, const size_t new_size) +{ + array = malloc(new_size); + memset(array, 0, new_size); + + return true; +} + + template <> bool memproc::realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t new_size) { diff --git a/src/MemoryProcessing.cu b/src/MemoryProcessing.cu index 5447a3a..9ce6d30 100644 --- a/src/MemoryProcessing.cu +++ b/src/MemoryProcessing.cu @@ -21,6 +21,15 @@ bool memproc::dealloc<MemType::GPU>(void *&array) return true; } +template <> +bool memproc::alloc<MemType::GPU>(void *&array, const size_t new_size) +{ + cudaMalloc ( (void **)&array, new_size); + cudaMemset(array, 0, new_size); + + return true; +} + template <> bool memproc::realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t new_size) { -- GitLab