Technical review meeting for GPU Virtual Sites

I have been doing some work in the recent months regarding support for virtual sites with GPU-resident update.

I’ve broken the change up into several parts, with the tracking issue at #5613:

  • Supporting triangle constraints on the GPU with LINCS (technically unrelated, but needed for the Martini use case) : !6116
  • Enabling the simplest vsite types 1, 2 and 3, including all of the necessary mdrun wiring: !6119
  • Adding vsite velocities: !6149
  • All remaining vsite types (except vsites-N): !6150
  • mdrun integration test: !6151

This is mainly an implementation effort and all of the math and most of the logic is adapted from the CPU path. That said, as was brought up in the group meeting, it would be good to have an in-depth technical review. In particular, some points worth discussing/design decisions to be taken are:

  • adding backend-agnostic helper function for extra LINCS matrix expansion orders (as per this comment)
  • whether we want the vsite-type switch within the kernel (meaning one global kernel launch covering all vsite types) or outside (one kernel per type)
  • mdrun schedule: are vsites always in sync?
  • do we want implement virtual site velocity calculation on the GPU, or is it enough to fall back to the CPU path ad hoc?
  • testing & validation strategy
  • other backends (see SYCL prototype by Mark at !6173)
  • any other issues that come up

Who would be willing to participate, and what’s your availability?
I would suggest some time end of this week, either Thursday (any time) or Friday (preferably morning). Next week would be harder to make for me, but possible.

Several are traveling this week, so I doubt we can arrange a meeting this week.

Okay. Next week I’ll be at a workshop, but I could probably find time in the evenings, at least.

Here’s a poll that we can use to decide on a date for the review meeting. In the meantime, I’ll prepare some slides about the main design decisions and considerations that we can use as basis for discussion.
I’ve just added a bunch of dates/times now that work for me, if you have another slot that would work better for you just drop it below and I’ll add it to the poll.

  • Monday, Sep 7, 17:00
  • Tuesday, Sep 8, 17:00
  • Thursday, Sep 10, 17:00
  • Monday, Sep 14, 10:00
  • Monday, Sep 14, 13:00
  • Monday, Sep 14, 15:00
  • Monday, Sep 14, 17:00
  • Tuesday, Sep 15, 10:00
  • Tuesday, Sep 15, 15:00
0 voters

Okay, seems like the poll/this thread did not get much attention. To propose a concrete date and time, I would suggest this Wednesday (Sep 16) at 17:00 CET, in the usual slot of the bi-weekly developer meeting. Does that work for people who would want to join this meeting?

Link to slides: VSite Update - Google Slides

Zoom link: Launch Meeting - Zoom