MUDA
Loading...
Searching...
No Matches
nd_reshaper.h
1#pragma once
2#include <cuda.h>
3
4namespace muda
5{
6template <typename T>
7class DeviceBuffer;
8
9template <typename T>
10class DeviceBuffer2D;
11
12template <typename T>
13class DeviceBuffer3D;
14
16{
17 public:
18 template <typename T, typename FConstruct>
19 static MUDA_HOST void resize(int grid_dim,
20 int block_dim,
21 cudaStream_t stream,
22 DeviceBuffer<T>& buffer,
23 size_t new_size,
24 FConstruct&& fct);
25
26 template <typename T>
27 static MUDA_HOST void shrink_to_fit(int grid_dim,
28 int block_dim,
29 cudaStream_t stream,
30 DeviceBuffer<T>& buffer);
31
32 template <typename T>
33 static MUDA_HOST void reserve(int grid_dim,
34 int block_dim,
35 cudaStream_t stream,
36 DeviceBuffer<T>& buffer,
37 size_t new_capacity);
38
39
40 //using T = float;
41 //using FConstruct = std::function<void(Buffer2DView<T>)>;
42 template <typename T, typename FConstruct>
43 static MUDA_HOST void resize(int grid_dim,
44 int block_dim,
45 cudaStream_t stream,
46 DeviceBuffer2D<T>& buffer,
47 Extent2D new_extent,
48 FConstruct&& fct);
49
50 template <typename T>
51 static MUDA_HOST void shrink_to_fit(int grid_dim,
52 int block_dim,
53 cudaStream_t stream,
54 DeviceBuffer2D<T>& buffer);
55
56 template <typename T>
57 static MUDA_HOST void reserve(int grid_dim,
58 int block_dim,
59 cudaStream_t stream,
60 DeviceBuffer2D<T>& buffer,
61 Extent2D new_capacity);
62
63 template <typename T, typename FConstruct>
64 static MUDA_HOST void resize(int grid_dim,
65 int block_dim,
66 cudaStream_t stream,
67 DeviceBuffer3D<T>& buffer,
68 Extent3D new_extent,
69 FConstruct&& fct);
70
71 template <typename T>
72 static MUDA_HOST void shrink_to_fit(int grid_dim,
73 int block_dim,
74 cudaStream_t stream,
75 DeviceBuffer3D<T>& buffer);
76
77 template <typename T>
78 static MUDA_HOST void reserve(int grid_dim,
79 int block_dim,
80 cudaStream_t stream,
81 DeviceBuffer3D<T>& buffer,
82 Extent3D new_capacity);
83};
84} // namespace muda
85
86#include "details/nd_reshaper.inl"
Definition device_buffer_2d.h:13
Definition device_buffer_3d.h:23
A std::vector like wrapper of cuda device memory, allows user to:
Definition device_buffer.h:46
Definition extent.h:10
Definition extent.h:40
Definition nd_reshaper.h:16