opm-simulators
Loading...
Searching...
No Matches
gpu_smart_pointer.hpp File Reference

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

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

namespace  Opm
 This file contains a set of helper functions used by VFPProd / VFPInj.
namespace  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.
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.
template<typename T>
auto Opm::gpuistl::make_gpu_unique_ptr ()
 Creates a unique pointer managing GPU-allocated memory of the specified element type.
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.
template<class T>
Opm::gpuistl::copyFromGPU (const T *value)
 Copies a value from GPU-allocated memory to the host.
template<class T>
Opm::gpuistl::copyFromGPU (const std::shared_ptr< T > &value)
 Copies a value from GPU-allocated memory to the host.
template<class T, class Deleter>
Opm::gpuistl::copyFromGPU (const std::unique_ptr< T, Deleter > &value)
 Copies a value from GPU-allocated memory to the host.
template<class T>
void Opm::gpuistl::copyToGPU (const T &value, T *ptr)
 Copies a value from the host to GPU-allocated memory.
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.
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.
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)

Detailed Description

defines convenience classes and functions for using std::shared_ptr and std::unique_ptr with GPU allocated memory.