|
opm-simulators
|
defines convenience classes and functions for using std::shared_ptr and std::unique_ptr with GPU allocated memory. More...
#include <cuda_runtime.h>#include <memory>#include <opm/common/utility/gpuDecorators.hpp>#include <opm/simulators/linalg/gpuistl/detail/gpu_safe_call.hpp>#include <opm/simulators/linalg/gpuistl/detail/is_gpu_pointer.hpp>Go to the source code of this file.
Classes | |
| struct | Opm::gpuistl::GpuArrayDeleter< T > |
Deleter that releases a GPU array allocation made with cudaMalloc. More... | |
| struct | Opm::gpuistl::GpuManagedDeleter< T > |
| Deleter for objects living in unified (managed) GPU memory. More... | |
| class | Opm::gpuistl::PointerView< T > |
| A view towards a smart pointer to GPU-allocated memory. More... | |
| class | Opm::gpuistl::PointerView< void > |
| Specialization of PointerView for void type This is needed beause we cannot have a PointerView<void> specialization due to dereferincing a void ptr. More... | |
| class | Opm::gpuistl::ValueAsPointer< T > |
| A value stored with a pointer interface. More... | |
Namespaces | |
| Opm::gpuistl | |
| A small, fixed‑dimension MiniVector class backed by std::array that can be used in both host and CUDA device code. | |
Functions | |
| template<typename T > | |
| std::shared_ptr< T > | Opm::gpuistl::make_gpu_shared_ptr () |
| Creates a shared pointer managing GPU-allocated memory of the specified element type. More... | |
| template<typename T > | |
| std::shared_ptr< T > | Opm::gpuistl::make_gpu_shared_ptr (const T &value) |
| Creates a shared pointer managing GPU-allocated memory of the specified element type. More... | |
| template<typename T > | |
| auto | Opm::gpuistl::make_gpu_unique_ptr () |
| Creates a unique pointer managing GPU-allocated memory of the specified element type. More... | |
| template<typename T > | |
| auto | Opm::gpuistl::make_gpu_unique_ptr (const T &value) |
| Creates a unique pointer managing GPU-allocated memory of the specified element type. More... | |
| template<typename T > | |
| std::unique_ptr< T[], GpuArrayDeleter< T > > | Opm::gpuistl::make_gpu_unique_ptr_array (std::size_t numElements) |
Creates a unique pointer managing a GPU-allocated array of numElements elements. More... | |
| template<typename T , class... Args> | |
| std::unique_ptr< T, GpuManagedDeleter< T > > | Opm::gpuistl::make_gpu_managed_unique_ptr (Args &&... args) |
| Creates a unique pointer managing GPU unified (managed) memory for a single object. More... | |
| template<class T > | |
| T | Opm::gpuistl::copyFromGPU (const T *value) |
| Copies a value from GPU-allocated memory to the host. More... | |
| template<class T > | |
| T | Opm::gpuistl::copyFromGPU (const std::shared_ptr< T > &value) |
| Copies a value from GPU-allocated memory to the host. More... | |
| template<class T , class Deleter > | |
| T | Opm::gpuistl::copyFromGPU (const std::unique_ptr< T, Deleter > &value) |
| Copies a value from GPU-allocated memory to the host. More... | |
| template<class T > | |
| void | Opm::gpuistl::copyToGPU (const T &value, T *ptr) |
| Copies a value from the host to GPU-allocated memory. More... | |
| template<class T > | |
| void | Opm::gpuistl::copyToGPU (const T &value, const std::shared_ptr< T > &ptr) |
| Copies a value from the host to GPU-allocated memory using a shared_ptr. More... | |
| template<class T , class Deleter > | |
| void | Opm::gpuistl::copyToGPU (const T &value, const std::unique_ptr< T, Deleter > &ptr) |
| Copies a value from the host to GPU-allocated memory using a unique_ptr. More... | |
| template<class T > | |
| PointerView< T > | Opm::gpuistl::make_view (const std::shared_ptr< T > &ptr) |
| template<class T , class Deleter > | |
| PointerView< T > | Opm::gpuistl::make_view (const std::unique_ptr< T, Deleter > &ptr) |
defines convenience classes and functions for using std::shared_ptr and std::unique_ptr with GPU allocated memory.