Wednesday, August 17, 2016

Hybrid Fortran

"One of the biggest challenges when applying GPGPU frameworks to complex codebases is the necessity for redesigning loops and data access patterns. Experiences with the physical core of the ASUCA weather prediction model have shown that using pure CUDA Fortran or OpenACC leads to a lengthy manual redesign and large execution time overheads when executing the new code back on the CPU. The Hybrid Fortran meta programming framework has been designed to (a) automate this process and (b) be able to run the user code in CPU optimized loop structure as well, thus enabling optimal performance both on GPU and CPU.

Hybrid Fortran is ..
  • .. 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.
Hybrid Fortran has been successfully used for porting the Physical Core of Japan's national next generation weather prediction model to GPGPU. We're currently planning to port the internationally used Open Source weather model WRF to Hybrid Fortran as well."

 https://github.com/muellermichel/Hybrid-Fortran

http://typhooncomputing.com/

http://on-demand.gputechconf.com/gtc/2013/poster/pdf/P0199_MichelMueller.pdf

Accelerators in HPC – Having the Cake and Eating It Too - http://typhooncomputing.com/?p=416

No comments:

Post a Comment