Gromacs  2025.0-dev-20241009-5c23d5f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
leapfrog_gpu_internal_sycl.cpp File Reference
#include "gmxpre.h"
#include "gromacs/gpu_utils/devicebuffer.h"
#include "gromacs/gpu_utils/gmxsycl.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/leapfrog_gpu.h"
#include "gromacs/mdtypes/group.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/template_mp.h"
#include "leapfrog_gpu_internal.h"
+ Include dependency graph for leapfrog_gpu_internal_sycl.cpp:

Description

Implements Leap-Frog using SYCL.

This file contains SYCL implementation of back-end specific code for Leap-Frog.

Author
Artem Zhmurov zhmur.nosp@m.ov@g.nosp@m.mail..nosp@m.com
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com

Classes

class  LeapFrogKernel< numTempScaleValues, parrinelloRahmanVelocityScaling >
 Class name for leap-frog kernel. More...
 

Functions

template<NumTempScaleValues numTempScaleValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling>
auto gmx::leapFrogKernel (Float3 *__restrict__ gm_x, Float3 *__restrict__ gm_x0, Float3 *__restrict__ gm_v, const Float3 *__restrict__ gm_f, const float *__restrict__ gm_inverseMasses, float dt, const float *__restrict__ gm_lambdas, const unsigned short *__restrict__ gm_tempScaleGroups, Float3 prVelocityScalingMatrixDiagonal)
 Main kernel for the Leap-Frog integrator. More...
 
template<NumTempScaleValues numTempScaleValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, class... Args>
static void gmx::launchLeapFrogKernel (const DeviceStream &deviceStream, int numAtoms, Args &&...args)
 Leap Frog SYCL kernel launch code.
 
static NumTempScaleValues gmx::getTempScalingType (bool doTemperatureScaling, int numTempScaleValues)
 Convert doTemperatureScaling and numTempScaleValues to NumTempScaleValues.
 
template<class... Args>
static void gmx::launchLeapFrogKernel (NumTempScaleValues tempScalingType, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, Args &&...args)
 Select templated kernel and launch it.
 
void gmx::launchLeapFrogKernel (int numAtoms, DeviceBuffer< Float3 > d_x, DeviceBuffer< Float3 > d_x0, DeviceBuffer< Float3 > d_v, DeviceBuffer< Float3 > d_f, DeviceBuffer< float > d_inverseMasses, float dt, bool doTemperatureScaling, int numTempScaleValues, DeviceBuffer< unsigned short > d_tempScaleGroups, DeviceBuffer< float > d_lambdas, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, Float3 prVelocityScalingMatrixDiagonal, const DeviceStream &deviceStream)
 Backend-specific function to launch GPU Leap Frog kernel. More...