#include "gromacs/utility/classhelpers.h"
#include "gromacs/utility/enumerationhelpers.h"
+struct gmx_wallcycle;
+
namespace gmx
{
* \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.
*/
Impl(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.
*
* \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.
*/
- Impl(const void* pmeStream, const void* deviceContext, GpuApiCallBehavior transferKind, int paddingSize);
+ Impl(const void* pmeStream,
+ const void* deviceContext,
+ GpuApiCallBehavior transferKind,
+ int paddingSize,
+ gmx_wallcycle* wcycle);
~Impl();
//! Allocation size for the force buffer
int d_fCapacity_ = -1;
+ //! \brief Pointer to wallcycle structure.
+ gmx_wallcycle* wcycle_;
+
/*! \brief Performs the copy of data from host to device buffer.
*
* \todo Template on locality.