2#ifndef STORMM_MESH_KERNEL_MANAGER_H
3#define STORMM_MESH_KERNEL_MANAGER_H
8#include "Constants/behavior.h"
9#include "DataTypes/stormm_vector_types.h"
10#include "Math/math_enumerators.h"
11#include "Structure/structure_enumerators.h"
12#include "Topology/atomgraph_enumerators.h"
13#include "gpu_details.h"
14#include "kernel_format.h"
19using constants::PrecisionModel;
20using stmath::Interpolant;
21using structure::BoundaryCondition;
22using structure::GridDetail;
23using structure::MappingActivity;
24using topology::UnitCellType;
59 MappingActivity process)
const;
62 UnitCellType unit_cell, Interpolant stencil_kind,
63 MappingActivity process)
const;
73 int occ_mesh_block_multiplier_dp;
74 int occ_mesh_block_multiplier_sp;
75 int nbf_mesh_block_multiplier_dp;
76 int nbf_mesh_block_multiplier_sp;
97 void catalogMeshKernel(PrecisionModel prec, MappingActivity process, GridDetail picture,
98 BoundaryCondition bounds,
99 const std::string &kernel_name = std::string(
""));
101 void catalogMeshKernel(PrecisionModel prec, MappingActivity process, GridDetail picture,
102 BoundaryCondition bounds, UnitCellType unit_cell,
103 Interpolant stencil_kind,
104 const std::string &kernel_name = std::string(
""));
113int meshBlockMultiplier(PrecisionModel prec, GridDetail picture);
144std::string meshKernelKey(PrecisionModel prec, GridDetail picture, BoundaryCondition bounds,
145 MappingActivity process);
147std::string meshKernelKey(PrecisionModel prec, GridDetail picture, BoundaryCondition bounds,
148 UnitCellType unit_cell, Interpolant stencil_kind,
149 MappingActivity process);
Pertinent aspects of one particular GPU. Condensing the data for each GPU in this manner helps to ens...
Definition gpu_details.h:27
KernelManager(const GpuDetails &gpu_in=null_gpu)
The constructor for this base class takes the GPU specifications.
Definition kernel_format.cpp:89
int getArchBlockMultiplier() const
Get the architecture-specific block multiplier. This will run a minimum number of blocks per streamin...
int2 getMeshKernelDims(PrecisionModel prec, GridDetail picture, BoundaryCondition bounds, MappingActivity process) const
Get the launch parameters for a mesh computation kernel.
Definition mesh_kernel_manager.cpp:115
MeshKlManager(const GpuDetails &gpu_in=null_gpu)
As the construction of virtually any mesh will provide enough operations for a GPU to run at acceptab...
Definition mesh_kernel_manager.cpp:14
Definition stormm_vector_types.h:22