|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
Pinned (page-locked) host memory resource: fast host-to-device staging (GPU::memAllocHost / GPU::memFreeHost).
More...
#include <EBGeometry_MemoryResource.hpp>


Public Member Functions | |
| PinnedMemoryResource ()=default | |
| Default constructor. | |
| ~PinnedMemoryResource () override=default | |
| Destructor. | |
| void * | allocate (size_t a_bytes, size_t a_alignment) override |
| Allocate a block of page-locked host memory. | |
| void | deallocate (void *a_ptr, size_t a_bytes, size_t a_alignment) noexcept override |
| Free a block previously returned by allocate. | |
| bool | isHostAccessible () const noexcept override |
| Pinned blocks are host-accessible. | |
| bool | isDeviceAccessible () const noexcept override |
| Pinned blocks are not device-accessible. | |
| void | copy (void *a_dst, const MemoryResource &a_dstResource, const void *a_src, const MemoryResource &a_srcResource, size_t a_bytes) const noexcept override |
| Copy between host and device memory with the GPU runtime; see MemoryResource::copy. | |
Public Member Functions inherited from EBGeometry::MemoryResource | |
| MemoryResource ()=default | |
| Default constructor. | |
| virtual | ~MemoryResource ()=default |
| Destructor. | |
| MemoryResource (const MemoryResource &)=delete | |
| Copy constructor. Deleted: a resource's identity is meaningful and non-copyable. | |
| MemoryResource & | operator= (const MemoryResource &)=delete |
| Copy assignment. Deleted: a resource's identity is meaningful and non-copyable. | |
Pinned (page-locked) host memory resource: fast host-to-device staging (GPU::memAllocHost / GPU::memFreeHost).
Compiled only under an offload backend (CUDA/HIP) or for documentation. Blocks are host-accessible and not device-accessible; being page-locked, they support faster and asynchronous transfers to a device than ordinary pageable host memory.
|
overridevirtual |
Allocate a block of page-locked host memory.
| [in] | a_bytes | Number of bytes to allocate. |
| [in] | a_alignment | Required alignment (validated to be <= PoolBaseAlign). |
Implements EBGeometry::MemoryResource.
|
overridevirtualnoexcept |
Copy between host and device memory with the GPU runtime; see MemoryResource::copy.
Host-to-host is a plain copy; device-to-device aborts, in every build.
| [out] | a_dst | Destination block. |
| [in] | a_dstResource | Resource that allocated a_dst. |
| [in] | a_src | Source block. |
| [in] | a_srcResource | Resource that allocated a_src. |
| [in] | a_bytes | Number of bytes to copy. |
Reimplemented from EBGeometry::MemoryResource.
|
overridevirtualnoexcept |
Free a block previously returned by allocate.
| [in] | a_ptr | Host pointer to free (null is a no-op). |
| [in] | a_bytes | Unused. |
| [in] | a_alignment | Unused. |
Implements EBGeometry::MemoryResource.
|
inlineoverridevirtualnoexcept |
Pinned blocks are not device-accessible.
Implements EBGeometry::MemoryResource.
|
inlineoverridevirtualnoexcept |