Task #3260
keep up to with mdspan reference implementation
Description
To represent multidimensional data, we use mdspan that is proposed C++ extension p0009 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0009r9.html)
We use a sub-set of the reference implementation in our code under src/gromacs/mdspan.
A new reference implementation is to be found at https://github.com/kokkos/mdspan.
We should strive for
- compatibility with the reference implementation
- potential performance benefits of moving to a newer implementation
Godbolt testing revealed that our use of mdspan already leads to highly performant code in easy cases like 3x3 matrices. Visible performance impact of using newer implementations might need to away more use of mdspan in the overall code-base.
Also note that we cannot yet make use of the compile time improvements that come with the use of C++17 in the reference implementation.