diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:20:02 +0000 |
commit | 58daab21cd043e1dc37024a7f99b396788372918 (patch) | |
tree | 96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /ml/dlib/dlib/dnn/cuda_data_ptr.cpp | |
parent | Releasing debian version 1.43.2-1. (diff) | |
download | netdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz netdata-58daab21cd043e1dc37024a7f99b396788372918.zip |
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ml/dlib/dlib/dnn/cuda_data_ptr.cpp')
-rw-r--r-- | ml/dlib/dlib/dnn/cuda_data_ptr.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/ml/dlib/dlib/dnn/cuda_data_ptr.cpp b/ml/dlib/dlib/dnn/cuda_data_ptr.cpp new file mode 100644 index 000000000..8abce0695 --- /dev/null +++ b/ml/dlib/dlib/dnn/cuda_data_ptr.cpp @@ -0,0 +1,71 @@ +// Copyright (C) 2017 Davis E. King (davis@dlib.net) +// License: Boost Software License See LICENSE.txt for the full license. +#ifndef DLIB_DNN_CuDA_DATA_PTR_CPP_ +#define DLIB_DNN_CuDA_DATA_PTR_CPP_ + +#ifdef DLIB_USE_CUDA + +#include "cuda_data_ptr.h" +#include "cuda_utils.h" + +namespace dlib +{ + namespace cuda + { + + // ----------------------------------------------------------------------------------- + + cuda_data_void_ptr:: + cuda_data_void_ptr( + size_t n + ) : num(n) + { + if (n == 0) + return; + + void* data = nullptr; + + CHECK_CUDA(cudaMalloc(&data, n)); + pdata.reset(data, [](void* ptr){ + auto err = cudaFree(ptr); + if(err!=cudaSuccess) + std::cerr << "cudaFree() failed. Reason: " << cudaGetErrorString(err) << std::endl; + }); + } + + // ------------------------------------------------------------------------------------ + + void memcpy( + void* dest, + const cuda_data_void_ptr& src + ) + { + if (src.size() != 0) + { + CHECK_CUDA(cudaMemcpy(dest, src.data(), src.size(), cudaMemcpyDefault)); + } + } + + // ------------------------------------------------------------------------------------ + + void memcpy( + cuda_data_void_ptr& dest, + const void* src + ) + { + if (dest.size() != 0) + { + CHECK_CUDA(cudaMemcpy(dest.data(), src, dest.size(), cudaMemcpyDefault)); + } + } + + // ------------------------------------------------------------------------------------ + + } +} + +#endif // DLIB_USE_CUDA + +#endif // DLIB_DNN_CuDA_DATA_PTR_CPP_ + + |