- .. a directive based extension for the Fortran language.
- .. a way for you to keep writing your Fortran code like you're used to - only now with GPGPU support.
- .. a preprocessor for your code - its input are Fortran files (with Hybrid Fortran extensions), its output is CUDA Fortran or OpenMP Fortran code (or whatever else you'd like to have as a backend).
- .. a build system that handles building two separate versions (CPU / GPU) of your codebase automatically, including all the preprocessing.
- .. a test system that handles verification of your outputs automatically after setup.
- .. a framework for you to build your own parallel code implementations (OpenCL, ARM, FPGA, Hamster Wheel.. as long as it has some parallel Fortran support you're good) while keeping the same source files.
https://github.com/muellermichel/Hybrid-Fortran
Hybrid Fortran: High Productivity GPU Porting Framework Applied to Japanese Weather Prediction Model - https://hgpu.org/?p=17723
In this work we use the GPU porting task for the operative Japanese weather prediction model "ASUCA" as an opportunity to examine productivity issues with OpenACC when applied to structured grid problems. We then propose "Hybrid Fortran", an approach that combines the advantages of directive based methods (no rewrite of existing code necessary) with that of stencil DSLs (memory layout is abstracted). This gives the ability to define multiple parallelizations with different granularities in the same code. Without compromising on performance, this approach enables a major reduction in the code changes required to achieve a hybrid GPU/CPU parallelization – as demonstrated with our ASUCA implementation using Hybrid Fortran.
No comments:
Post a Comment