STORMM Source Documentation
|
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>
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 |
![]() | |
const GpuDetails & | getGpu () 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 | |
![]() | |
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. | |
![]() | |
GpuDetails | gpu |
The details of the GPU in use are simply copied into this object. | |
std::map< std::string, KernelFormat > | k_dictionary |
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.
int2 stormm::card::MeshKlManager::getMeshKernelDims | ( | PrecisionModel | prec, |
GridDetail | picture, | ||
BoundaryCondition | bounds, | ||
MappingActivity | process ) const |
Get the launch parameters for a mesh computation kernel.
Overloaded:
prec | The precision model in which to perform calculations and present results |
picture | The type of potential or field presented by the mesh |
bounds | Boundary conditions for the mesh mapper of interest |
unit_cell | The unit cell type of each mesh element (and, by extension, of the mesh as a whole) |
stencil_kind | The framework for fitting tricubic polynomial coefficients in each mesh element |
process | The direction of information flow between the mesh and particles |