struct t_nrnb;
struct gmx_wallcycle;
enum class PbcType : int;
-class DeviceStream;
class t_state;
class DeviceContext;
class GpuEventSynchronizer;
namespace gmx
{
+class DeviceStreamManager;
class ForceWithShiftForces;
class MDLogger;
class RangePartitioning;
real* r_2b,
real* r_mb);
-/*! \brief Construct the GPU halo exchange object(s)
- * \param[in] mdlog The logger object
- * \param[in] cr The commrec object
- * \param[in] deviceContext GPU device context
- * \param[in] streamLocal The local GPU stream
- * \param[in] streamNonLocal The non-local GPU stream
+/*! \brief Construct the GPU halo exchange object(s).
+ *
+ * \param[in] mdlog The logger object.
+ * \param[in] cr The commrec object.
+ * \param[in] deviceStreamManager Manager of the GPU context and streams.
*/
-void constructGpuHaloExchange(const gmx::MDLogger& mdlog,
- const t_commrec& cr,
- const DeviceContext& deviceContext,
- const DeviceStream& streamLocal,
- const DeviceStream& streamNonLocal);
+void constructGpuHaloExchange(const gmx::MDLogger& mdlog,
+ const t_commrec& cr,
+ const gmx::DeviceStreamManager& deviceStreamManager);
/*! \brief
* (Re-) Initialization for GPU halo exchange