Rework the StatePropagatorDataGpu - Redmine #3323
The StatePropagatorDataGpu currently is one way or another responsible for:
- Low-level data management.
- Stream/context management.
- Locality management.
- Managing the copy events.
Proposed development is to introduce the “ManagedDeviceBuffer” object that will take these responsibilities away from the StatePropagatorDataGpu, making it into a collection of the respective buffers. The “ManagedDeviceBuffer” can also replace the StatePropagatorDataGpu in places, where only one buffer is needed, e.g. in PME-only ranks and tests.
Code (order is important):
- https://gerrit.gromacs.org/#/c/gromacs/+/14599/ - Introduce a managed GPU buffer.
- https://gerrit.gromacs.org/#/c/gromacs/+/14600/ - Make use of ManagedDeviceBuffer in StatePropagatorDataGpu.
- https://gerrit.gromacs.org/#/c/gromacs/+/15417/ - Move wcycle management from state propagator data to managed device buffer.
- https://gerrit.gromacs.org/#/c/gromacs/+/14637/ - Use the methods of ManagedDeviceBuffer directly.
- https://gerrit.gromacs.org/#/c/gromacs/+/14646/ - Create a constructor for the ManagedDeviceBuffer that takes only one stream.
- https://gerrit.gromacs.org/#/c/gromacs/+/14644/ - Use ManagedDeviceBuffer instead of StatePropagatorDataGpu in PME-only ranks and tests.
(from redmine: issue id 3323, created on 2020-01-22 by artemzhmurov)
- Relations:
- parent #3311 (closed)
Edited by Szilárd Páll