|
opm-simulators
|
RAII class for pinning host memory using cudaHostRegister. More...
#include <PinnedMemoryHolder.hpp>
Public Member Functions | |
| PinnedMemoryHolder (T *ptr, std::size_t numberOfElements, unsigned int flags=cudaHostRegisterDefault) | |
| Constructs a PinnedMemoryHolder and registers the host memory. | |
| ~PinnedMemoryHolder () | |
| Destructor. | |
| PinnedMemoryHolder (const PinnedMemoryHolder &)=delete | |
| PinnedMemoryHolder & | operator= (const PinnedMemoryHolder &)=delete |
| PinnedMemoryHolder (PinnedMemoryHolder &&other) noexcept | |
| PinnedMemoryHolder & | operator= (PinnedMemoryHolder &&other) noexcept |
| T * | get () const |
| Gets the pointer to the pinned memory. | |
| std::size_t | numberOfElements () const |
| Gets the number of elements in the pinned memory region. | |
RAII class for pinning host memory using cudaHostRegister.
This class registers a given host memory region in its constructor and unregisters it in its destructor. This is useful for speeding up asynchronous memory transfers between host and GPU.
| T | The type of data pointed to by the host pointer. |
|
inline |
Constructs a PinnedMemoryHolder and registers the host memory.
| ptr | Pointer to the host memory to be pinned. |
| numberOfElements | The number of elements of type T in the memory region. |
| flags | Flags for cudaHostRegister. Defaults to cudaHostRegisterDefault. |
| std::runtime_error | if cudaHostRegister fails. |
|
inline |
Destructor.
Unregisters the host memory.
|
inline |
Gets the pointer to the pinned memory.
|
inline |
Gets the number of elements in the pinned memory region.