Draft: [RFC] Remove support for using OpenCL as GPU backend
OpenCL has been deprecated for years and has not seen any of the new features add to the CUDA and SYCL backends.
It also restricts us when it comes to writing host code because we still need to be able to pass it to the OpenCL JIT compiler that only understands C99, meaning we can't use templated types as arguments.
Also remove clfft from the repository, as it was only used with OpenCL.
Closes #5079
Merge request reports
Activity
changed milestone to %2025.devcycle2
requested review from @mark.j.abraham, @magnus.lundborg, @al42and, and @pszilard
assigned to @acmnpv
7 7 Also, please use the syntax :issue:`number` to reference issues on GitLab, without 8 8 a space between the colon and number! 9 9 10 Removed OpenCL backend 11 """""""""""""""""""""" 12 13 The OpenCL GPU backend has been deprecated for years and seen no work to support the additional 14 GPU offload parts that are now supported with CUDA and SYCL. I'm generally in favor of this step. Unfortunately we don't have much information on whether GROMACS users are using it to run on devices not supported by ROCm. AFAIK AMD has not made any official statement on routinely supporting ROCm on consumer devices, but there has been a (slow) trend of more devices being officially supported (and others that happened to work).
At some point we should pull off the bandage and recognize that if AMD doesn't care about ROCm on these devices, the number of potential GROMACS users who will have them and want to try to use them is not going to grow. That's particularly true given that we've had OpenCL support deprecated for a few years. We periodically have to drop support for older CUDA devices (and will start having to do so for Intel and AMD at some future time), and this decision has a similar characteristics.
Meanwhile,
- GROMACS has extra CI testing burden (which limits the number of configurations we could otherwise have if we weren't spending them on OpenCL testing) and
- it's harder to make improvements to the GPU code (because you have to ensure the OpenCL build does not degrade and perhaps contort things to make them work).
I'm starting a conversation here with the people responsible for the consumer devices at AMD, and hope I will be able to point out to them that people first start using consumer hardware on their personal machines and then move to the HPC system.
So having a positive user experience there will be beneficial when getting people familiar with the ROCm stack, so maybe we will be able to get some more information about it.
But I also think we will need to do this anyway at some point, and just like when we removed the group scheme there will be people upset about it. So better to get it done now that there is a good reason (in my biased opinion) instead of kicking the can down the road
added 5 commits
-
3b167a71...0c5c98a7 - 3 commits from branch
main
- bc61dc7b - Remove support for using OpenCL as GPU backend
- 3d793b07 - Fix documentation build
-
3b167a71...0c5c98a7 - 3 commits from branch
added GPU acceleration OpenCL labels
I think a policy decision is required before code review so I suggest doing so first (and follow up on #5079).
changed milestone to %2026.devcycle1