The Portland Group has announced that release 2010 of the PGI line of high-performance parallelizing compilers and development tools for Linux, Mac OS X, and Windows. PGI 2010 is the first general release to include full support for the PGI Accelerator Programming model v1.0 standard on x64 processor-based systems incorporating NVIDIA CUDA-enabled Graphical Processing Units (GPUs). In addition to supporting high-level programming of accelerators using the PGI Accelerator programming model, the PGI Release 2010 also includes PGI CUDA Fortran, an explicit GPU programming model and API that gives programmers direct control of all aspects of programming NVIDIA GPUs.
The PGI Accelerator programming model is a collection of compiler directives used to specify regions of code in Fortran and C programs that can be offloaded from a host CPU to an attached accelerator to enhance performance. Applications optimized using the PGI Accelerator directives remain 100% portable to other compilers and platforms, and execute on systems with or without a GPU accelerator.
PGI 2010 offers full support for the PGI Accelerator programming model including the following new features:
- GPU device-resident data -- the ability to define and leave data on the GPU across accelerator regions and subroutine boundaries
- Support for COMPLEX and DOUBLE COMPLEX data types in Fortran
- Support for C structs and Fortran derived types
- Automatic GPU-side loop unrolling for improved performance
- Support for Accelerator regions nested within OpenMP parallel regions
- Support for Linux, Mac OS X (including Snow Leopard) and Windows (including Windows 7).
"Within five years, most HPC systems will include both x86 CPUs and accelerators in some form," said Douglas Miles, director, The Portland Group. "The PGI 2010 compilers will play a role in establishing accelerated computing as the mainstream HPC architecture."
PGI CUDA Fortran includes a Fortran 95/03 compiler and tool chain for native programming of NVIDIA GPUs using Fortran. CUDA Fortran subroutines can launch and execute in parallel on the hundreds of cores in an NVIDIA GPU under control of an x64 host CPU. Developed in collaboration with NVIDIA, PGI CUDA Fortran extensions supported in the PGI 2010 Fortran 95/03 compiler enable HPC developers to explicitly control all aspects of data movement, memory utilization and computation on CUDA GPUs.
Additional new features in the PGI 2010 compilers and tools include support for more Fortran 2003 incremental features, the latest EDG 4.1 C++ front-end with enhanced GNU and Microsoft compatibility, OpenMP parallel programming support for up to 256 cores, and AVX code generation. PGI 2010 also includes a major update to the PGPROF performance profiler, which now supports performance profiling of binary executables without re-compiling or any special software privileges, uniform operation and features on Linux, Mac OS X and Windows, support for PGI Accelerator and PGI CUDA Fortran GPU-side performance statistics, and an updated graphical user interface. Finally, PGI 2010 supports the latest operating system releases including Red Hat Fedora 10/11, SuSE 11.1 and Ubuntu 9, Mac OS X Snow Leopard and Windows 7.
Enhancements in the PGI 2010 release of PGI Visual Fortran for Microsoft Visual Studio include full support for the PGI Accelerator Programming model and PGI CUDA Fortran on NVIDIA CUDA-enabled GPUs, and the addition of a new standalone version of the PGPROF performance profiler for x64 and GPUs with support for the Common Compiler Feedback Format (CCFF). CCFF is a draft standard published by PGI that defines what compiler information is stored and how the information is formatted. CCFF enables HPC tools providers to offer more and better information about optimizing performance.