Open-Source Cross-Platform GPU Acceleration for Fortran developers
July 2020 - FluidNumerics/hip-fortran has been incorporated into the ROCmSoftwarePlatform/hipfort repository, and Fluid Numerics has joined the hipfort board of directors.
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. HIPfort 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 HIPFort will help Fortran developers achieve substantial GPU acceleration that is consistent across AMD and Nvidia GPU's.
HIP-Fortran has been incorporated into the ROCmSoftwarePlatform/hipfort repository.
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, open a new issue on the Github page.
The HIPfort Maintainers & Users Group (hfMUG) meets on the 3rd Tuesday of every month at 2PM MST. If you're interested in becoming a maintainer or voicing your views as a HIPfort user, join the hfMUG and connect with other HIPfort developers and users.
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 worked with AMD to ensure hipfort is licensed to users under an MIT 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, developing and maintaining codelab tutorials, organizing hackathons, and offering live webinars and remote tutorials.
All of these activities require significant time investments from open-source software contributors. Because of this, Fluid Numerics has formed WATERCHaNGE, a non-profit organization that serves as a fiscal host through OpenCollective to support projects like HIPfort. In addition to sponsorship through OpenCollective, there are a few other ways you can support HIPfort.
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 hipfort.
As you build expertise in GPU programming and working with HIPFort, 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.
HIPfort is meant to be a layer that allows Fortran developers to accelerate applications with both AMD and Nvidia GPUs. HIPfort 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 HIPfort CI server.
Open-source software contributors incur expenses for time & labor and cloud computing to maintain and support the hipfort repository, codelabs, tutorials, demos, CI infrastructure, and mini-app testing. Fluid Numerics has started WATERCHaNGE, a non-profit organization that provides fiscal hosting for open-source projects with demonstrated community impact.