CPPuddle
hip_recycling_allocators.hpp
Go to the documentation of this file.
1 // Copyright (c) 2020-2024 Gregor Daiß
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef HIP_RECYCLING_ALLOCATORS_HPP
7 #define HIP_RECYCLING_ALLOCATORS_HPP
8 
10 // import hip_pinned_allocator and hip_device_allocator
12 
17 
18 namespace cppuddle {
19 namespace memory_recycling {
20 
21 // Tell cppuddle how to select the device for the hip allocators
22 namespace device_selection {
24 template <typename T>
26  void operator()(const size_t device_id) { hipSetDevice(device_id); }
27 };
29 template <typename T>
31  void operator()(const size_t device_id) { hipSetDevice(device_id); }
32 };
33 } // namespace device_selection
34 
36 template <typename T, std::enable_if_t<std::is_trivial<T>::value, int> = 0>
40 template <typename T, std::enable_if_t<std::is_trivial<T>::value, int> = 0>
43 
44 } // namespace memory_recycling
45 } // end namespace cppuddle
46 #endif
Definition: config.hpp:31
cppuddle::memory_recycling::detail::hip_pinned_allocator< T > hip_pinned_allocator
Definition: hip_buffer_util.hpp:23
cppuddle::memory_recycling::detail::hip_device_allocator< T > hip_device_allocator
Definition: hip_buffer_util.hpp:28
Recycles not only allocations but also the contents of a buffer.
Definition: buffer_management.hpp:840
Definition: buffer_management.hpp:770
void operator()(const size_t device_id)
Definition: hip_recycling_allocators.hpp:31
void operator()(const size_t device_id)
Definition: hip_recycling_allocators.hpp:26
Default device selector - No MultGPU support.
Definition: buffer_management.hpp:55