Project

General

Profile

Feature #2887

Feature #2816: GPU offload / optimization for update&constraits, buffer ops and multi-gpu communication

CUDA version of Leap Frog algorithm

Added by Artem Zhmurov 7 months ago. Updated 13 days ago.

Status:
New
Priority:
Normal
Assignee:
Category:
-
Target version:
Difficulty:
uncategorized
Close

Description

The initial implementation works independently from other parts of the code, which require a temporary infrastructure to hide CUDA-specific types from CPU compiler, manage coordinates, velocities and forces, handle periodic boundary conditions. It is enabled by setting environmental variable "GMX_INTEGRATE_GPU".

TODO:

  • Initial implementation as a stand-alone class.
  • Make sure that all not supported cases exit with error.
  • Temperature control.
  • Pressure control.
Tests:
  • Tests against the exact solution of constant force case.
  • Unify tests with the CPU version.

Related issues

Related to GROMACS - Feature #2885: CUDA version of LINCSNew
Related to GROMACS - Feature #2886: CUDA version of SETTLENew
Related to GROMACS - Feature #2888: CUDA Update and Constraints moduleNew

Associated revisions

Revision d061dec5 (diff)
Added by Artem Zhmurov 5 months ago

CUDA version of Leap-Frog integrator with basic tests

Part of the GPU-only loop. Curent version is as a stand-alone module,
with its own coordinate, velocities and forces data management.
To activate, set environment variable GMX_INTEGRATE_GPU.

Limitations:

-- Only basic Leap-Frog is implemented.
-- No temperature control.
-- No pressure control.

Refs #2816, #2887

Change-Id: I439d7f5fd4f69a17ca7aaa412e242ce5e3aa5dbd

Revision a80b9cef (diff)
Added by Artem Zhmurov 2 months ago

Make use of reference data in integrator tests

Current version of tests is based on exactly solvable model,
which does not allow for testing more sophisticated cases,
including when temperature or pressure control is enabled.
This commit adds the tests that are based on the reference
data, which can be generated for any existing use-case.

Refs. #2816, #2887.

Change-Id: I64bb2326b0adf44be8b48449ef09cd26939ea467

Revision 4b07f76f (diff)
Added by Artem Zhmurov about 2 months ago

Add temperature coupling to CUDA Leap-Frog integrator

Velocity rescaling added to the integrator. None, one,
or multiple rescaling groups are supported. Tests that
include temperature coupling are added.

NoseHoover temperature control is not implemented.

Refs. #2887, #2888.

Change-Id: I1e6850eeb74de829554260fba6a6e6c1c63ceb46

Revision 7ddb7204 (diff)
Added by Artem Zhmurov about 1 month ago

Add Parrinello-Rahman pressure coupling to CUDA Leap-Frog integrator

Parrinello-Rahman isotropic pressure coupling scheme is now
added to CUDA version of the Leap-Frog integrator. The
Leap-Frog tests are updated to check the new addition.

Refs. #2887, #2888.

Change-Id: Icf42667621c16a994e68baf5158ea4abac387928

History

#1 Updated by Artem Zhmurov 7 months ago

#2 Updated by Artem Zhmurov 7 months ago

#3 Updated by Artem Zhmurov 7 months ago

  • Description updated (diff)

#4 Updated by Artem Zhmurov 7 months ago

  • Related to Feature #2888: CUDA Update and Constraints module added

#5 Updated by Artem Zhmurov 7 months ago

  • Description updated (diff)

#6 Updated by Artem Zhmurov 2 months ago

  • Description updated (diff)

#7 Updated by Artem Zhmurov 13 days ago

  • Description updated (diff)

Also available in: Atom PDF