X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=blobdiff_plain;f=src%2Fgromacs%2Fewald%2Fpme_gpu_internal.h;h=0a6ee2a5d29a1b901e85bf828421c9c8f048d92a;hb=c088e63019ebc68760d35c3bc916015864aa8e89;hp=7baa6bd3475eb1a79ff5e7f498c0554a7eb5f735;hpb=f59f6ec6e04f4a3732876c2c76250b8444fdcb69;p=alexxy%2Fgromacs.git diff --git a/src/gromacs/ewald/pme_gpu_internal.h b/src/gromacs/ewald/pme_gpu_internal.h index 7baa6bd347..0a6ee2a5d2 100644 --- a/src/gromacs/ewald/pme_gpu_internal.h +++ b/src/gromacs/ewald/pme_gpu_internal.h @@ -340,21 +340,30 @@ void pme_gpu_destroy_3dfft(const PmeGpu* pmeGpu); /*! \libinternal \brief * A GPU spline computation and charge spreading function. * - * \param[in] pmeGpu The PME GPU structure. - * \param[in] xReadyOnDevice Event synchronizer indicating that the coordinates are ready in the device memory; - * can be nullptr when invoked on a separate PME rank or from PME tests. - * \param[out] h_grids The host-side grid buffers (used only if the result of the spread is expected on the host, - * e.g. testing or host-side FFT) - * \param[in] computeSplines Should the computation of spline parameters and gridline indices be performed. - * \param[in] spreadCharges Should the charges/coefficients be spread on the grid. - * \param[in] lambda The lambda value of the current system state. - */ -GPU_FUNC_QUALIFIER void pme_gpu_spread(const PmeGpu* GPU_FUNC_ARGUMENT(pmeGpu), - GpuEventSynchronizer* GPU_FUNC_ARGUMENT(xReadyOnDevice), - float** GPU_FUNC_ARGUMENT(h_grids), - bool GPU_FUNC_ARGUMENT(computeSplines), - bool GPU_FUNC_ARGUMENT(spreadCharges), - real GPU_FUNC_ARGUMENT(lambda)) GPU_FUNC_TERM; + * \param[in] pmeGpu The PME GPU structure. + * \param[in] xReadyOnDevice Event synchronizer indicating that the coordinates are + * ready in the device memory; can be nullptr when invoked + * on a separate PME rank or from PME tests. + * \param[out] h_grids The host-side grid buffers (used only if the result + * of the spread is expected on the host, e.g. testing + * or host-side FFT) + * \param[in] computeSplines Should the computation of spline parameters and gridline + * indices be performed. + * \param[in] spreadCharges Should the charges/coefficients be spread on the grid. + * \param[in] lambda The lambda value of the current system state. + * \param[in] useGpuDirectComm Whether direct GPU PME-PP communication is active + * \param[in] pmeCoordinateReceiverGpu Coordinate receiver object, which must be valid when + * direct GPU PME-PP communication is active + */ +GPU_FUNC_QUALIFIER void +pme_gpu_spread(const PmeGpu* GPU_FUNC_ARGUMENT(pmeGpu), + GpuEventSynchronizer* GPU_FUNC_ARGUMENT(xReadyOnDevice), + float** GPU_FUNC_ARGUMENT(h_grids), + bool GPU_FUNC_ARGUMENT(computeSplines), + bool GPU_FUNC_ARGUMENT(spreadCharges), + real GPU_FUNC_ARGUMENT(lambda), + const bool GPU_FUNC_ARGUMENT(useGpuDirectComm), + gmx::PmeCoordinateReceiverGpu* GPU_FUNC_ARGUMENT(pmeCoordinateReceiverGpu)) GPU_FUNC_TERM; /*! \libinternal \brief * 3D FFT R2C/C2R routine.