introduce check that CPU-GPU transfers are made between arrays of compatible types
The bonded, constraints and update code makes the implicit assumption that the
float3 types are compatible both in size and layout and it is safe to copy data from an array of the former to the latter.
We should add a check for this assumption in the relevant modules, checking at least that the sizes of the types are equal using a static_assert.
#4 Updated by Artem Zhmurov about 1 month ago
- Target version changed from 2020 to 2021
Started to add these checks in current master (see https://gerrit.gromacs.org/#/c/gromacs/+/14859/). Solution for the proper data type for the coordinates device buffer is needed: RVec/rvec can not be directly used in the GPU code, float3 is not available in the CPU code. Re-targeting to the next version.