STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::structure::CacheResource Class Reference

An object to hold temporary data for a particular work unit (whether bonded or non-bonded), resident in GMEM but private to a particular thread block. This object must be allocated in such a way as to be ready to hold the private workspaces of any thread blocks that will make use of it. The object is arranged to support operations based on PhaseSpaceSynthesis respresentations of systems' coordinates and forces. More...

#include <cacheresource.h>

Public Member Functions

CacheResourceKit< double > dpData (HybridTargetLevel tier=HybridTargetLevel::HOST)
 Get a set of pointers to this object with double-precision representations for the charges.
 
CacheResourceKit< float > spData (HybridTargetLevel tier=HybridTargetLevel::HOST)
 Get a set of pointers to this object with single-precision representations for the charges.
 
 CacheResource (int block_limit_in, int atom_limit_in)
 The constructor does not take a GPU description, but instead maximum numbers of blocks and atoms per block that might be required, allocating space as appropriate.
 
 CacheResource (int block_limit_in, int2 atom_limits_in)
 
 CacheResource (const CacheResource &original)
 Basic copy and move constructors.
 
 CacheResource (CacheResource &&original)
 
CacheResourceoperator= (const CacheResource &other)
 Basic copy and move assignment operators.
 
CacheResourceoperator= (CacheResource &&other)
 

Detailed Description

An object to hold temporary data for a particular work unit (whether bonded or non-bonded), resident in GMEM but private to a particular thread block. This object must be allocated in such a way as to be ready to hold the private workspaces of any thread blocks that will make use of it. The object is arranged to support operations based on PhaseSpaceSynthesis respresentations of systems' coordinates and forces.

Constructor & Destructor Documentation

◆ CacheResource() [1/2]

stormm::energy::CacheResource::CacheResource ( int block_limit_in,
int atom_limit_in )

The constructor does not take a GPU description, but instead maximum numbers of blocks and atoms per block that might be required, allocating space as appropriate.

Overloaded:

  • Provide a general work unit size to allocate
  • Provide a pair of work unit sizes to allocate (the larger of the two will be taken)
Parameters
block_limit_inThe maximum number of thread blocks that will need resources
atom_limit_inThe maximum number of atoms per block requiring local copies
atom_limits_inMaximum numbers of atoms per block requiring local copies, for work units containing organic molecules in the "x" member of the tuple and work units assumed to contain only water in the "y" member

◆ CacheResource() [2/2]

stormm::energy::CacheResource::CacheResource ( const CacheResource & original)

Basic copy and move constructors.

Parameters
originalThe object to copy

Member Function Documentation

◆ operator=()

CacheResource & stormm::energy::CacheResource::operator= ( const CacheResource & other)

Basic copy and move assignment operators.

Parameters
otherThe object to assign against

The documentation for this class was generated from the following files: