Open-Source Cross-Platform GPU Acceleration for Fortran developers
Cross-Platform GPU Acceleration in Fortran
In the past few years, the HPC community has realized the value in GPU acceleration for scientific applications. As we cross into the Exascale era, it's becoming clear that there is trend towards GPU computing. Interests from multiple vendors is likely to increase the diversity of available GPU platforms. Coupling this with a drive towards cloud computing platforms that offer a variety of CPU and GPU systems, HPC developers are left thinking about performance portability to ensure there applications can run where-ever on-demand.
GPU programming in Fortran has been successful, but inconsistent across API's and compilers in the last few years. OpenMP implementations in GNU, Intel, and PGI compilers currently do not offer support for AMD GPU's in Fortran. CUDA-Fortran is only available in PGI and only offloads to Nvidia GPUs. AMD's HIP provides an API for accelerating C/C++ applications with both Nvidia and AMD GPUs. HIP-Fortran exposes AMD's HIP to Fortran with any compiler that support 2003 standard. For those who want to write kernels, similar to CUDA kernels, that offload to both AMD and Nvidia GPUs and call them from Fortran, HIP-Fortran aims to be that solution.
It is our hope is that HIP-Fortran will help Fortran developers achieve substantial GPU acceleration that is consistent across AMD and Nvidia GPU's.
HIP-Fortran is in its infancy and Fluid Numerics is ready to help users get started. We are currently focusing on building tests to support Continuous Integration and creating live training modules, documentation, and codelabs. If you have requests for more HIP API exposure, would like to report bugs, or need guidance on implementation not covered in documentation or the testsuite, open a new issue on the Github page.
Support this project
At Fluid Numerics, we see the value in giving back to the community that we are a part of. GPU acceleration tools for multiple platforms is something that we believe should be accessible to anyone. Because of this, we have completely open-sourced HIP-Fortran and licensed it to users under the Apache 2.0 License. Open-sourcing tools comes with its own challenges and risks.
We will always strive to make sure HIP-Fortran functions as it should on multiple GPU platforms and is up-to-date with the underlying HIP-API. Additionally, we want to be able to provide as much community support as we can through responding to issues, maintaining and improving continuous integration infrastructure, moderating the hip-fortran public group forum, developing and maintaining codelab tutorials, organizing hackathons, and offering live webinars and remote tutorials.
All of these activities require significant time investments from Fluid Numerics and we'd like to share with you how you can support us to keep this project going.
Fluid Numerics offers consulting and hands-on coding to assist you and your team with code refactoring, GPU porting, GPU optimization, and multi-GPU acceleration. When you engage us for support, a significant portion of our service fee is reinvested into R&D accounts at Fluid Numerics to allow us to continue to support the open-source HIP-Fortran.
As you build expertise in GPU programming and working with HIP-Fortran, we want to hear from you! Fluid Numerics is ready to help give you a virtual stage to share your experience and lessons learned with the rest of the HPC community.
HIP-Fortran is meant to be a layer that allows Fortran developers to accelerate applications with both AMD and Nvidia GPUs. HIP-Fortran is regularly tested on Nvidia GPU platforms, but consistent testing on AMD platforms is still wanting. Support this project by providing access to AMD GPU systems or donating AMD GPU cards to Fluid Numerics to set up a hip-fortran CI server.
Fluid Numerics incurs expenses for time & labor and cloud computing to maintain and support the HIP-Fortran repository, codelabs, tutorials, demos, CI infrastructure, and mini-app testing. Consider donating funds to Fluid Numerics that will be reserved for these expenses.