STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::card::MeshKlManager Class Reference

Collect and dispense the launch parameters for various mesh-based kernels. The launches for these kernels will generally take place in the context of a BackgroundMesh object, whether during its construction or for its application. More...

#include <mesh_kernel_manager.h>

Inheritance diagram for stormm::card::MeshKlManager:
Collaboration diagram for stormm::card::MeshKlManager:

Public Member Functions

 MeshKlManager (const GpuDetails &gpu_in=null_gpu)
 As the construction of virtually any mesh will provide enough operations for a GPU to run at acceptable efficiency. The constructor will therefore be based on the GPU specs as if the workload is for a single mesh.
 
int getArchBlockMultiplier () const
 Get the architecture-specific block multiplier. This will run a minimum number of blocks per streaming multiprocessor on some cards, specifically NVIDIA's GTX 1080-Ti, when large blocks cannot use more than 32k registers in all.
 
int2 getMeshKernelDims (PrecisionModel prec, GridDetail picture, BoundaryCondition bounds, MappingActivity process) const
 Get the launch parameters for a mesh computation kernel.
 
int2 getMeshKernelDims (PrecisionModel prec, GridDetail picture, BoundaryCondition bounds, UnitCellType unit_cell, Interpolant stencil_kind, MappingActivity process) const
 
- Public Member Functions inherited from stormm::card::KernelManager
const GpuDetailsgetGpu () const
 Get the GPU information for the active GPU.
 
void printLaunchParameters (const std::string &k_key=std::string(""), const char *true_class_name=generic_kernel_manager_name) const
 Print out the kernel launch parameters found for this workload.
 

Additional Inherited Members

- Protected Member Functions inherited from stormm::card::KernelManager
 KernelManager (const GpuDetails &gpu_in=null_gpu)
 The constructor for this base class takes the GPU specifications.
 
virtual ~KernelManager ()
 A virtual destructor ensures proper behavior in the destructors of derived classes for managing particular groups of kernels.
 
- Protected Attributes inherited from stormm::card::KernelManager
GpuDetails gpu
 The details of the GPU in use are simply copied into this object.
 
std::map< std::string, KernelFormatk_dictionary
 

Detailed Description

Collect and dispense the launch parameters for various mesh-based kernels. The launches for these kernels will generally take place in the context of a BackgroundMesh object, whether during its construction or for its application.

Member Function Documentation

◆ getMeshKernelDims()

int2 stormm::card::MeshKlManager::getMeshKernelDims ( PrecisionModel prec,
GridDetail picture,
BoundaryCondition bounds,
MappingActivity process ) const

Get the launch parameters for a mesh computation kernel.

Overloaded:

  • Provide precision model, process, mesh type, and boundary conditions, the minimum descriptors for occlusion meshes
  • Provide unit cell and interpolant specifications for nonbonded field meshes
Parameters
precThe precision model in which to perform calculations and present results
pictureThe type of potential or field presented by the mesh
boundsBoundary conditions for the mesh mapper of interest
unit_cellThe unit cell type of each mesh element (and, by extension, of the mesh as a whole)
stencil_kindThe framework for fitting tricubic polynomial coefficients in each mesh element
processThe direction of information flow between the mesh and particles

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