ForOpenCL: Transformations Exploiting Array Syntax in Fortran for Accelerator Programming
Matthew J. Sottile, Craig E Rasmussen, Wayne N. Weseloh and, Robert W. Robey, Daniel Quinlan, Jeffrey Overbey

TL;DR
This paper introduces ForOpenCL, a methodology that transforms Fortran array syntax into efficient OpenCL code for GPU accelerators, enabling high performance with minimal manual optimization.
Contribution
It presents a novel transformation approach that leverages Fortran's array syntax to generate efficient OpenCL code for GPU acceleration.
Findings
Performance comparable to hand-optimized OpenCL code
Uses standard Fortran features for accelerator programming
Demonstrated with shallow-water fluid equations stencil code
Abstract
Emerging GPU architectures for high performance computing are well suited to a data-parallel programming model. This paper presents preliminary work examining a programming methodology that provides Fortran programmers with access to these emerging systems. We use array constructs in Fortran to show how this infrequently exploited, standardized language feature is easily transformed to lower-level accelerator code. The transformations in ForOpenCL are based on a simple mapping from Fortran to OpenCL. We demonstrate, using a stencil code solving the shallow-water fluid equations, that the performance of the ForOpenCL compiler-generated transformations is comparable with that of hand-optimized OpenCL code.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Distributed and Parallel Computing Systems
