Redevelopment of GPU Force Reduction/Buffer Ops
[alexxy/gromacs.git] / src / gromacs / nbnxm / nbnxm_gpu.h
index eace69938645badfb8cfc27b8afc011e85f1e0b3..00e7ae11f5a1240b351033e622ba615314957eab 100644 (file)
@@ -340,45 +340,19 @@ GPU_FUNC_QUALIFIER
 bool haveGpuShortRangeWork(const NbnxmGpu gmx_unused* nb, gmx::AtomLocality gmx_unused aLocality)
         GPU_FUNC_TERM_WITH_RETURN(false);
 
-/*! \brief Initialization for F buffer operations on GPU */
-CUDA_FUNC_QUALIFIER
-void nbnxn_gpu_init_add_nbat_f_to_f(const int gmx_unused* cell,
-                                    NbnxmGpu gmx_unused* gpu_nbv,
-                                    int gmx_unused       natoms_total,
-                                    GpuEventSynchronizer gmx_unused* localReductionDone) CUDA_FUNC_TERM;
-
-/*! \brief Force buffer operations on GPU.
- *
- * Transforms non-bonded forces into plain rvec format and add all the force components to the total
- * force buffer
- *
- * \param[in]   atomLocality         If the reduction should be performed on local or non-local atoms.
- * \param[in]   totalForcesDevice    Device buffer to accumulate resulting force.
- * \param[in]   gpu_nbv              The NBNXM GPU data structure.
- * \param[in]   pmeForcesDevice      Device buffer with PME forces.
- * \param[in]   dependencyList       List of synchronizers that represent the dependencies the reduction task needs to sync on.
- * \param[in]   atomStart            Index of the first atom to reduce forces for.
- * \param[in]   numAtoms             Number of atoms to reduce forces for.
- * \param[in]   useGpuFPmeReduction  Whether PME forces should be added.
- * \param[in]   accumulateForce      Whether there are usefull data already in the total force buffer.
- *
- */
-CUDA_FUNC_QUALIFIER
-void nbnxn_gpu_add_nbat_f_to_f(gmx::AtomLocality gmx_unused atomLocality,
-                               DeviceBuffer<gmx::RVec> gmx_unused totalForcesDevice,
-                               NbnxmGpu gmx_unused* gpu_nbv,
-                               void gmx_unused*                           pmeForcesDevice,
-                               gmx::ArrayRef<GpuEventSynchronizer* const> gmx_unused dependencyList,
-                               int gmx_unused atomStart,
-                               int gmx_unused numAtoms,
-                               bool gmx_unused useGpuFPmeReduction,
-                               bool gmx_unused accumulateForce) CUDA_FUNC_TERM;
-
 /*! \brief sync CPU thread on coordinate copy to device
  * \param[in] nb                   The nonbonded data GPU structure
  */
 CUDA_FUNC_QUALIFIER
 void nbnxn_wait_x_on_device(NbnxmGpu gmx_unused* nb) CUDA_FUNC_TERM;
 
+/*! \brief Get the pointer to the GPU nonbonded force buffer
+ *
+ * \param[in] nb  The nonbonded data GPU structure
+ * \returns       A pointer to the force buffer in GPU memory
+ */
+CUDA_FUNC_QUALIFIER
+void* getGpuForces(NbnxmGpu gmx_unused* nb) CUDA_FUNC_TERM_WITH_RETURN(nullptr);
+
 } // namespace Nbnxm
 #endif