Gromacs  2021.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
gmx::DeviceStreamManager Class Reference

#include <gromacs/gpu_utils/device_stream_manager.h>

Description

Device stream and context manager.

Manages the lifetime of the GPU streams and their association with context and device information that is needed to use them.

If supported by the GPU API, the available runtime and the indicated device, some streams will be configured at high priority. Otherwise, all streams will share the default priority appropriate to the situation.

Public Member Functions

 DeviceStreamManager (const DeviceInformation &deviceInfo, bool havePpDomainDecomposition, SimulationWorkload simulationWork, bool useTiming)
 Constructor. More...
 
const DeviceInformationdeviceInfo () const
 Get the device information object of the associated device. More...
 
const DeviceContext & context () const
 Returns a handle to the GPU context. More...
 
const DeviceStreamstream (DeviceStreamType streamToGet) const
 Returns a handle to the requested GPU stream. More...
 
const DeviceStreambondedStream (bool hasPPDomainDecomposition) const
 Returns a handle to the GPU stream to compute bonded forces in. More...
 
bool streamIsValid (DeviceStreamType streamToCheck) const
 Return whether the requested GPU stream is valid for use. More...
 

Constructor & Destructor Documentation

gmx::DeviceStreamManager::DeviceStreamManager ( const DeviceInformation deviceInfo,
bool  havePpDomainDecomposition,
SimulationWorkload  simulationWork,
bool  useTiming 
)

Constructor.

Exceptions
InternalErrorIf any of the required resources could not be initialized.

Member Function Documentation

const DeviceStream & gmx::DeviceStreamManager::bondedStream ( bool  hasPPDomainDecomposition) const

Returns a handle to the GPU stream to compute bonded forces in.

Parameters
[in]hasPPDomainDecompositionWhether there is a particle-particle domain decomposition.
const DeviceContext & gmx::DeviceStreamManager::context ( ) const

Returns a handle to the GPU context.

Todo:
This relies on the fact that only one unique device is described by nonbondedDeviceInfo and pmeDeviceInfo.
const DeviceInformation & gmx::DeviceStreamManager::deviceInfo ( ) const

Get the device information object of the associated device.

Returns
reference to device info.
const DeviceStream & gmx::DeviceStreamManager::stream ( DeviceStreamType  streamToGet) const

Returns a handle to the requested GPU stream.

Parameters
[in]streamToGetWhich stream to get.
bool gmx::DeviceStreamManager::streamIsValid ( DeviceStreamType  streamToCheck) const

Return whether the requested GPU stream is valid for use.

Parameters
[in]streamToCheckWhich stream to check.
Returns
Whether the stream was initialized.

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