summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/dnn/cuda_data_ptr.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /ml/dlib/dlib/dnn/cuda_data_ptr.cpp
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-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.cpp71
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_
+
+