Task #3323
Feature #3311: GPU infrastructure development
Rework the StatePropagatorDataGpu
Description
The StatePropagatorDataGpu currently is one way or another responsible for:
1. Low-level data management.
2. Stream/context management.
3. Locality management.
4. 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.
History
#1 Updated by Artem Zhmurov 12 months ago
- Target version set to 2021
#2 Updated by Artem Zhmurov 12 months ago
- Target version changed from 2021 to 2021-refactoring