Operations

Operations provide an abstract interface to modifying and moving data between Umpire :class:`umpire::Allocator`s.

Provided Operations

namespace op
class CudaCopyFromOperation : public umpire::op::MemoryOperation
#include <umpire/op/CudaCopyFromOperation.hpp>

Copy operation to move data from a NVIDA GPU to CPU memory.

class CudaCopyOperation : public umpire::op::MemoryOperation
#include <umpire/op/CudaCopyOperation.hpp>

Copy operation to move data between two GPU addresses.

class CudaCopyToOperation : public umpire::op::MemoryOperation
#include <umpire/op/CudaCopyToOperation.hpp>

Copy operation to move data from CPU to NVIDIA GPU memory.

class CudaMemsetOperation : public umpire::op::MemoryOperation
#include <umpire/op/CudaMemsetOperation.hpp>

Memset on NVIDIA device memory.

class GenericReallocateOperation : public umpire::op::MemoryOperation
#include <umpire/op/GenericReallocateOperation.hpp>

Generic reallocate operation to work on any current_ptr location.

class HipCopyFromOperation : public umpire::op::MemoryOperation
#include <umpire/op/HipCopyFromOperation.hpp>

Copy operation to move data from a AMD GPU to CPU memory.

class HipCopyOperation : public umpire::op::MemoryOperation
#include <umpire/op/HipCopyOperation.hpp>

Copy operation to move data between two GPU addresses.

class HipCopyToOperation : public umpire::op::MemoryOperation
#include <umpire/op/HipCopyToOperation.hpp>

Copy operation to move data from CPU to AMD GPU memory.

class HipMemsetOperation : public umpire::op::MemoryOperation
#include <umpire/op/HipMemsetOperation.hpp>

Memset on AMD device memory.

class HostCopyOperation : public umpire::op::MemoryOperation
#include <umpire/op/HostCopyOperation.hpp>

Copy memory between two allocations in CPU memory.

class HostMemsetOperation : public umpire::op::MemoryOperation
#include <umpire/op/HostMemsetOperation.hpp>

Memset an allocation in CPU memory.

class HostReallocateOperation : public umpire::op::MemoryOperation
#include <umpire/op/HostReallocateOperation.hpp>

Reallocate data in CPU memory.

class MemoryOperation
#include <umpire/op/MemoryOperation.hpp>

Base class of an operation on memory.

Neither the transfrom or apply methods are pure virtual, so inheriting classes only need overload the appropriate method. However, both methods will throw an error if called.

Subclassed by umpire::op::CudaAdviseAccessedByOperation, umpire::op::CudaAdvisePreferredLocationOperation, umpire::op::CudaAdviseReadMostlyOperation, umpire::op::CudaAdviseUnsetAccessedByOperation, umpire::op::CudaAdviseUnsetPreferredLocationOperation, umpire::op::CudaAdviseUnsetReadMostlyOperation, umpire::op::CudaCopyFromOperation, umpire::op::CudaCopyOperation, umpire::op::CudaCopyToOperation, umpire::op::CudaMemPrefetchOperation, umpire::op::CudaMemsetOperation, umpire::op::GenericReallocateOperation, umpire::op::HipCopyFromOperation, umpire::op::HipCopyOperation, umpire::op::HipCopyToOperation, umpire::op::HipMemsetOperation, umpire::op::HostCopyOperation, umpire::op::HostMemsetOperation, umpire::op::HostReallocateOperation, umpire::op::NumaMoveOperation, umpire::op::RocmCopyOperation, umpire::op::RocmMemsetOperation

class MemoryOperationRegistry
#include <umpire/op/MemoryOperationRegistry.hpp>

The MemoryOperationRegistry serves as a registry for MemoryOperation objects. It is a singleton class, typically accessed through the ResourceManager.

The MemoryOperationRegistry class provides lookup mechanisms allowing searching for the appropriate MemoryOperation to be applied to allocations made with particular AllocationStrategy objects.

MemoryOperations provided by Umpire are registered with the MemoryOperationRegistry when it is constructed. Additional MemoryOperations can be registered later using the registerOperation method.

The following operations are pre-registered for all AllocationStrategy pairs:

  • ”COPY”

  • ”MEMSET”

  • ”REALLOCATE”

See

MemoryOperation

See

AllocationStrategy

class NumaMoveOperation : public umpire::op::MemoryOperation
#include <umpire/op/NumaMoveOperation.hpp>

Relocate a pointer to a different NUMA node.

class RocmCopyOperation : public umpire::op::MemoryOperation
#include <umpire/op/RocmCopyOperation.hpp>

Copy operation to move data between two GPU addresses.

class RocmMemsetOperation : public umpire::op::MemoryOperation
#include <umpire/op/RocmMemsetOperation.hpp>

Memset an allocation in CPU memory.