STORMM Source Documentation
Loading...
Searching...
No Matches
hpc_reduction.h
1// -*-c++-*-
2#ifndef STORMM_HPC_REDUCTION_H
3#define STORMM_HPC_REDUCTION_H
4
5#include "copyright.h"
6#include "Accelerator/core_kernel_manager.h"
7#include "MolecularMechanics/mm_controls.h"
8#include "Synthesis/atomgraph_synthesis.h"
9#include "Synthesis/phasespace_synthesis.h"
10#include "reduction_abstracts.h"
11#include "reduction_bridge.h"
12#include "reduction_enumerators.h"
13
14namespace stormm {
15namespace stmath {
16
17using card::CoreKlManager;
18using constants::PrecisionModel;
19using mm::MolecularMechanicsControls;
20using mm::MMControlKit;
21using synthesis::AtomGraphSynthesis;
22using synthesis::PhaseSpaceSynthesis;
23
33cudaFuncAttributes queryReductionKernelRequirements(const PrecisionModel prec,
34 const ReductionGoal purpose,
35 const ReductionStage process);
36
55void launchConjugateGradient(const ReductionKit &redk, ConjGradSubstrate *cgsbs,
56 MMControlKit<double> *ctrl, const int2 bt);
57
58void launchConjugateGradient(const ReductionKit &redk, ConjGradSubstrate *cgsbs,
59 MMControlKit<float> *ctrl, const int2 bt);
60
61void launchConjugateGradient(PrecisionModel prec, const AtomGraphSynthesis poly_ag,
63 MolecularMechanicsControls *mmctrl, const CoreKlManager &launcher);
65
66} // namespace synthesis
67} // namespace stormm
68
69#endif
A class to guide the implementation of GPU kernels, with selected thread counts per block and block c...
Definition core_kernel_manager.h:56
A collection of contol data for molecular mechanics simulations, conveying the current step number,...
Definition mm_controls.h:100
Allocate space for reduction operations to store temporary accumulations, bridging the gap between ga...
Definition reduction_bridge.h:18
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
A fixed-precision representation of coordinates, velocities, and forces to manage a set of simulation...
Definition phasespace_synthesis.h:325
The C-style, always writeable abstract for the MolecularMechanicsControls object. To not be able to m...
Definition mm_controls.h:52
Collect pointers needed for conjugate gradient reduction operations, normalizing forces and mixing th...
Definition reduction_abstracts.h:121
Collect the simple components needed to guide reductions across all systems in a topology synthesis (...
Definition reduction_abstracts.h:24