Fortran Preprocessor for GPU's

The CAPS family of GPU compilers and Pro Fortran simplify building portable
CUDA and OpenCL enabled Fortran code.


OpenACC and OpenHMPP:

OpenACC is an organization which has established a small set of OpenMP like directives utilized to specify loops and regions of code in standard C, C++ and Fortran which can be offloaded from a host CPU to an attached accelerator, and executed in parallel. This standard model allows development of GPU enabled code portable across operating systems, host CPUs and accelerators. OpenACC is an open standard API supported by several vendors.

OpenHMPP is a superset of the OpenACC API with more functionality and advanced features such as the management of multiple devices, the use of accelerated libraries with directives, the integration of hand-written CUDA (or OpenCL) device kernels, and code generation directives that either increase kernel parallelism with loop transformations or enable the use of accelerator specific features such as device shared memory.

Coding with CAPS, allows the programmer to add OpenMP like extensions to the source code which identify Fortran subroutines that can execute in parallel. Once identified, these subroutines can be explicitly offloaded to run on the GPU while the Fortran program is running on the host. During the translation stage, CAPS automatically split the source code into standard Fortran source and source designed to be offloaded to a GPU. Special drivers and product integration make CAPS usage largely transparent during this step, when used in conjunction with Absoft Pro Fortran for Windows or Linux.

After translation is complete, the Fortran source is compiled by Absoft Pro Fortran and code for GPUs such as NVIDIA's CUDA (or OpenCL) is compiled by the data-parallel CUDA compiler (included). These two components are then automatically linked into a single, highly optimized, multi-threaded executable. When run on CUDA GPU enabled hardware, significant speed increases are possible. This operation is transparent to the user. On non-GPU systems, the code runs in the standard manner. This programming model allows software assets to utilize a single source tree and preserve portability and hardware interoperability across different GPU and non-GPU systems.

The directives used to identify parallel code segments are well defined, open source and provide maximum flexibility because they allow tuning any part of the application and preserve legacy codes. They also allow the application to scale by fully leveraging stream and vector units and dynamically adapting to execution on multi-GPU systems. OpenHMPP adds additional functionality including instantaneous prototyping and hardware performance evaluation of critical functions during the development cycle.|

OpenACC and HMPP support both Fortran and C/C++ and provide a high levels of abstraction for hybrid programming and include powerful data-parallel back-ends for NVIDIA CUDA and OpenCL systems that drastically reduces development time. The HMPP runtime ensures application deployment on multi-GPU systems. Software assets are kept independent from both hardware platforms and commercial software. While preserving portability and hardware interoperability. The CAPS compiler tools significantly increases application performance and development productivity, while maintaining coding standards and code portability.


Click below to view a short video on using CAPS Compilers Many-Core GPU computation solution with Absoft Pro Fortran.

View more Absoft Pro Fortran videos on YouTube


CAPS Processed GPU Code



Contact | Newsletter | Career | Legal | Terms of Use | Privacy | Buy | Support | Downloads | Site Map | Home

© 1996-2013 Absoft  Corporation 2075 W Big Beaver Rd, Suite 250 Troy MI 48084  
 Voice: 248-220-1190   Fax: 248-220-1194