-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OCCA Backend #816
Comments
Adding @camierjs, who did most of the initial development. Realistically, this is way off the critical path of @jeremylt's other deliverables (using libCEED, but no longer funded by CEED) so if nobody familiar with OCCA has time/interest, then maintaining it will require bringing someone new up to speed. Given that we're entering the last year of ECP funding, that's hard to justify without a sustainable research concept. I know @LeilaGhaffari is interested in supporting Intel GPUs (after a summer at NCAR working with DPC++), and I'd love to more easily be able to transfer techniques from @tcew et al's work. I think fixing the OCCA backend to compile with latest OCCA is achievable (I wish the release documented API changes/migration recommendations), but bringing it up to par with the CUDA and HIP backends will be a much bigger lift. |
Good points; it is rather removed from the PSAAP work since we'll be running on machines that are better supported by other backends. In that case, I think we need to retire this backend if we cannot find someone who has the time to regularly maintain this backend against OCCA main and keep feature parity with the other backends. |
Note: there is an MFEM PR to update MFEM for the latest OCCA release, v1.2.0: mfem/mfem#1978 |
Ah, I thought that had already finished back in January. My mistake. |
What is our path forward with the OCCA backend?
At this time, the OCCA backend is falling behind the other backends in terms of feature-completeness for preconditioner support. We have default functionality, but it pulls down to the CPU, so it would be slow for GPU environments. Also, we don't yet have GPU optimized or code-generation features it the OCCA backend. Third, currently an MFEM user can build the latest version of MFEM with OCCA support or with libCEED support but not both, as the libCEED OCCA backend uses a different version of OCCA than MFEM uses.
It totally makes sense that @dmed256 doesn't have time to keep this backend fully up to date, but I feel like we need someone with the time to keep this backend fully up to date. Currently I don't know enough C++ and OCCA to do the job.
I feel like we have a few options:
Retire OCCA backend - not my preferred option, as I feel like the OCCA backend could offer our first support on the new Intel GPUs
I learn OCCA and C++ - my preferred option, even though this will take a fair investment in time, I'm hoping what I learn will help our Rust GPU efforts
Invent more time for @dmed256 - not sure this is possible?
Other collaborators - I'm not sure if there are other collaborators who would be interested in working on this backend
I'm open to other ideas; I just want to make sure we have a plan here.
The text was updated successfully, but these errors were encountered: