Gromacs  2024.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
gpuforcereduction_impl_internal_sycl.cpp File Reference
#include "gmxpre.h"
#include <utility>
#include "gromacs/gpu_utils/devicebuffer.h"
#include "gromacs/gpu_utils/gmxsycl.h"
#include "gromacs/gpu_utils/gpu_utils.h"
#include "gromacs/gpu_utils/gpueventsynchronizer.h"
#include "gromacs/utility/template_mp.h"
#include "gpuforcereduction_impl_internal.h"
+ Include dependency graph for gpuforcereduction_impl_internal_sycl.cpp:

Description

Implements GPU Force Reduction using SYCL.

Author
Alan Gray alang.nosp@m.@nvi.nosp@m.dia.c.nosp@m.om
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com

Classes

class  ReduceKernel< addRvecForce, accumulateForce >
 Class name for reduction kernel. More...
 

Functions

template<bool addRvecForce, bool accumulateForce>
static auto gmx::reduceKernel (const Float3 *__restrict__ gm_nbnxmForce, const Float3 *__restrict__ gm_rvecForceToAdd, Float3 *__restrict__ gm_forceTotal, const int *__restrict__ gm_cell, const int atomStart)
 Function returning the force reduction kernel lambda.
 
template<bool addRvecForce, bool accumulateForce>
static void gmx::launchReductionKernel_ (const int numAtoms, const int atomStart, const DeviceBuffer< Float3 > &d_nbnxmForce, const DeviceBuffer< Float3 > &d_rvecForceToAdd, DeviceBuffer< Float3 > &d_forceTotal, const DeviceBuffer< int > &d_cell, const DeviceStream &deviceStream)
 Force reduction SYCL kernel launch code.
 
void gmx::launchForceReductionKernel (int numAtoms, int atomStart, bool addRvecForce, bool accumulate, const DeviceBuffer< Float3 > d_nbnxmForceToAdd, const DeviceBuffer< Float3 > d_rvecForceToAdd, DeviceBuffer< Float3 > d_baseForce, DeviceBuffer< int > d_cell, const DeviceStream &deviceStream, DeviceBuffer< uint64_t > d_forcesReadyNvshmemFlags, const uint64_t forcesReadyNvshmemFlagsCounter)
 Backend-specific function to launch GPU Force Reduction kernel. More...