/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
#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.