Feature #3311

GPU infrastructure development

Added by Artem Zhmurov about 1 month ago. Updated about 1 month ago.

In Progress
Target version:


General goal is to develop platform-agnostic infrastructure for CUDA and OpenCL with perspective expansion to other technologies (SYCL?).


Feature #2967: GPU reallocateDeviceBuffer improvementsNew
Task #3312: Data type for coordinates, xyzq data, LJ parameters data to use for GPU buffersIn ProgressArtem Zhmurov
Bug #3372: Re-enable RVec and float3 compatibility testsIn ProgressArtem Zhmurov
Feature #3313: Introduce and use opaque types for the DeviceStream and DeviceContextAcceptedArtem Zhmurov
Task #3314: Platform agnostic DeviceStreamAcceptedArtem Zhmurov
Task #3315: Platform agnostic DeviceContextIn ProgressArtem Zhmurov
Task #3316: Context and Stream managerAcceptedArtem Zhmurov
Task #3317: Improve testing of the GPU codeAcceptedArtem Zhmurov
Feature #3318: Use wrappers for the GPU buffer copy/allocationsIn ProgressArtem Zhmurov
Task #3319: Use DeviceBuffer instead of native GPU types in NBNXMIn ProgressArtem Zhmurov
Task #3320: Remove duplicating D2H/H2D wrappers in NBNXMIn ProgressArtem Zhmurov
Task #3321: Add D2D wrapperAcceptedArtem Zhmurov
Task #3322: Add reallocate(...) function that does not care about the contents of the bufferAcceptedArtem Zhmurov
Task #3323: Rework the StatePropagatorDataGpuIn ProgressArtem Zhmurov
Task #3324: Rework CMake handling of GPU codeNew

Related issues

Related to GROMACS - Task #2936: introduce check that CPU-GPU transfers/assignments are made between compatible typesNew

Associated revisions

Revision 6197aaed (diff)
Added by Artem Zhmurov 25 days ago

Split and move the checkDeviceBuffer(...) function from PME

Resolving a TODO.

Also fixed the formatting in neighboring comment.

Refs. #3311.

Change-Id: I1687981cc80e2388714cbbb3113f37e34582e31c

Revision ca9c6942 (diff)
Added by Artem Zhmurov 17 days ago

Make OpenCL DeviceVendor into enum class and move to GPU traits

The device context in OpenCL requires the information on vendor when
constructed. To prepare for opaque DeviceContext, the vendor
enum was moved into OpenCL traits.

Refs. #3311, needed for #3315.

Change-Id: Iec22ff17543b6a99407048de6e0cd82bb7218fb0

Revision e742ad10 (diff)
Added by Artem Zhmurov 17 days ago

Move DeviceInfo into GPU traits

The DeviceInfo is needed upon construction of DeviceContext. To
prepare for opaque DeviceContext type, it is moved to GPU traits
and renamed according to the common naming scheme.

Refs. #3311, needed for #3315.

Change-Id: I2a9f1d932f142d645df75901521a734d208de509


#1 Updated by Artem Zhmurov about 1 month ago

  • Tracker changed from Task to Feature

#2 Updated by Artem Zhmurov about 1 month ago

  • Target version set to 2021-refactoring

#3 Updated by Szilárd Páll 18 days ago

  • Related to Task #2936: introduce check that CPU-GPU transfers/assignments are made between compatible types added

Also available in: Atom PDF