From 37ccae56d2092be506f6cb37bc4ed2c8b8256ebe Mon Sep 17 00:00:00 2001 From: Lizzzka007 <gashchuk2011@mail.ru> Date: Sun, 17 Dec 2023 02:08:10 +0300 Subject: [PATCH] hotfix --- src/MemoryProcessing.cpp | 77 ++++++++++++++++--------------- src/MemoryProcessing.cu | 99 +++++++++++++++++++++------------------- 2 files changed, 91 insertions(+), 85 deletions(-) diff --git a/src/MemoryProcessing.cpp b/src/MemoryProcessing.cpp index ecaa177..4a6dcd8 100644 --- a/src/MemoryProcessing.cpp +++ b/src/MemoryProcessing.cpp @@ -2,53 +2,56 @@ #include <cstdlib> #include <cstring> -template<> -bool memproc::dealloc<MemType::CPU>(void *&array, size_t &allocated_size) +namespace memproc { - if(allocated_size > 0) + template<> + bool dealloc<MemType::CPU>(void *&array, size_t &allocated_size) { - free(array); - allocated_size = 0; - } - - return true; -} - -template<> -bool memproc::dealloc<MemType::CPU>(void *&array) -{ - free(array); - return true; -} + if(allocated_size > 0) + { + free(array); + allocated_size = 0; + } -template <> -bool memproc::alloc<MemType::CPU>(void *&array, const size_t new_size) -{ - array = malloc(new_size); - memset(array, 0, new_size); - - return true; -} + return true; + } + template<> + bool dealloc<MemType::CPU>(void *&array) + { + free(array); + return true; + } -template <> -bool memproc::realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t new_size) -{ - if(new_size > allocated_size) + template <> + bool alloc<MemType::CPU>(void *&array, const size_t new_size) { - if(allocated_size > 0) dealloc<MemType::CPU>(array, allocated_size); - allocated_size = new_size; array = malloc(new_size); memset(array, 0, new_size); + + return true; } - return true; -} -template <> -bool memproc::memcopy<MemType::CPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size) -{ - memcpy(dst, src, copy_elem_size); + template <> + bool realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t new_size) + { + if(new_size > allocated_size) + { + if(allocated_size > 0) dealloc<MemType::CPU>(array, allocated_size); + allocated_size = new_size; + array = malloc(new_size); + memset(array, 0, new_size); + } + + return true; + } + + template <> + bool memcopy<MemType::CPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size) + { + memcpy(dst, src, copy_elem_size); - return true; + return true; + } } \ No newline at end of file diff --git a/src/MemoryProcessing.cu b/src/MemoryProcessing.cu index 9ce6d30..4c866ed 100644 --- a/src/MemoryProcessing.cu +++ b/src/MemoryProcessing.cu @@ -2,66 +2,69 @@ #include <cuda.h> #include <cuda_runtime_api.h> -template<> -bool memproc::dealloc<MemType::GPU>(void *&array, size_t &allocated_size) +namespace memproc { - if(allocated_size > 0) + template<> + bool dealloc<MemType::GPU>(void *&array, size_t &allocated_size) { - cudaFree(array); - allocated_size = 0; - } - - return true; -} + if(allocated_size > 0) + { + cudaFree(array); + allocated_size = 0; + } -template<> -bool memproc::dealloc<MemType::GPU>(void *&array) -{ - cudaFree(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; + } - return true; -} + template<> + bool dealloc<MemType::GPU>(void *&array) + { + cudaFree(array); + return true; + } -template <> -bool memproc::realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t new_size) -{ - if(new_size > allocated_size) + template <> + bool alloc<MemType::GPU>(void *&array, const size_t new_size) { - if(allocated_size > 0) dealloc<MemType::GPU>(array, allocated_size); - allocated_size = new_size; cudaMalloc ( (void **)&array, new_size); cudaMemset(array, 0, new_size); + + return true; } - return true; -} + template <> + bool realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t new_size) + { + if(new_size > allocated_size) + { + if(allocated_size > 0) dealloc<MemType::GPU>(array, allocated_size); + allocated_size = new_size; + cudaMalloc ( (void **)&array, new_size); + cudaMemset(array, 0, new_size); + } -template <> -bool memproc::memcopy<MemType::GPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size) -{ - cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyHostToDevice); + return true; + } - return true; -} + template <> + bool memcopy<MemType::GPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size) + { + cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyHostToDevice); -template <> -bool memproc::memcopy<MemType::CPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size) -{ - cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToHost); - return true; -} + return true; + } -template <> -bool memproc::memcopy<MemType::GPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size) -{ - cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToDevice); - return true; + template <> + bool memcopy<MemType::CPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size) + { + cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToHost); + return true; + } + + template <> + bool memcopy<MemType::GPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size) + { + cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToDevice); + return true; + } } \ No newline at end of file -- GitLab