Add wallcycle counting to StatePropagatorDataGpu
[alexxy/gromacs.git] / src / gromacs / mdtypes / state_propagator_data_gpu.h
index c6ae19c589c0101759ddd7b135f2161f282872e8..697f9d2c861053326f139df573bd4d39c273570e 100644 (file)
@@ -60,6 +60,7 @@
 #include "locality.h"
 
 class GpuEventSynchronizer;
+struct gmx_wallcycle;
 
 namespace gmx
 {
@@ -108,13 +109,15 @@ public:
      *  \param[in] deviceContext   Device context, nullptr allowed.
      *  \param[in] transferKind    H2D/D2H transfer call behavior (synchronous or not).
      *  \param[in] paddingSize     Padding size for coordinates buffer.
+     *  \param[in] wcycle          Wall cycle counter data.
      */
     StatePropagatorDataGpu(const void*        pmeStream,
                            const void*        localStream,
                            const void*        nonLocalStream,
                            const void*        deviceContext,
                            GpuApiCallBehavior transferKind,
-                           int                paddingSize);
+                           int                paddingSize,
+                           gmx_wallcycle*     wcycle);
 
     /*! \brief Constructor to use in PME-only rank and in tests.
      *
@@ -130,11 +133,13 @@ public:
      *  \param[in] deviceContext   Device context, nullptr allowed for non-OpenCL builds.
      *  \param[in] transferKind    H2D/D2H transfer call behavior (synchronous or not).
      *  \param[in] paddingSize     Padding size for coordinates buffer.
+     *  \param[in] wcycle          Wall cycle counter data.
      */
     StatePropagatorDataGpu(const void*        pmeStream,
                            const void*        deviceContext,
                            GpuApiCallBehavior transferKind,
-                           int                paddingSize);
+                           int                paddingSize,
+                           gmx_wallcycle*     wcycle);
 
     //! Move constructor
     StatePropagatorDataGpu(StatePropagatorDataGpu&& other) noexcept;