What's New in 19.1
The LLVM backend has been upgraded from version 6.0 to 7.0 and is now the default code generator for Linux x86-64 platforms. This is a significant change that is described in more detail in the LLVM Code Generator section.
Upgraded FlexNet Publisher licensing to version 11.16.2 from 18.104.22.168 for x86-64. The newer daemons are backwards-compatible with previous versions of the PGI compilers. The reverse is not true. This release, and future releases, of the PGI compilers are not compatible with the older daemons and require version 11.16.2 at a minimum.
PCAST (PGI Compiler-Assisted Software Testing) now supports C and Fortran directives that are equivalent to the existing library API calls.
Added support for the following versions of Linux/x86-64:
Added support for Windows Server 2019 and macOS Mojave.
Updated support for SIMD intrinsic functions in the pgc++ compiler for Linux/x86-64 platforms. Support is comprehensive for SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 intrinsics. Many of the AVX, AVX2 and AVX-512 intrinsics are now implemented as well. We expect to add comprehensive support for the AVX intrinsics in a future release.
The pgc++ compiler now implements full support for the C+17 language standard.
Added support for the ERROR STOP statement.
Added run-time checks to enforce CONTIGUOUS behavior. These checks only occur in code running on the CPU; in particular, they do not occur in code running on a GPU.
Improved Fortran reshape performance, and handling of derived type c-binding for C++ objects.
Improved performance of several intrinsic functions for AVX2 and newer processors: sin, cos, log, log10, cexp, acos, ains, atan, tanh.
Improved performance of memory idiom functions: mset, mcopy, mzero.
Enhanced vectorizer to recognize more opportunities for SIMD code generation across all CPU targets.
Known Issues and Limitations
Passing -M[no]llvm to MPI wrappers (mpicc, mpifort, etc.) is not supported. Doing so will cause unresolved symbol errors and segmentation faults when compiling.
Using -V<version> with the PGI 2019 compilers to target PGI 2018 or earlier releases is not supported. This is a known limitation that is the result of the switch to using LLVM compilers as the default code generator for the PGI 2019 compilers.
Programs built with OpenMPI 3.1.3 that use only one MPI rank will hang if invoked directly. You must now run the program with mpirun -np 1 ./executable or set the environment variable OMPI_MCA_ess_singleton_isolated=1. This is a known and intended behavior change in the 3.1.3 version of OpenMPI.
OpenMP profiling is not supported for Fortran applications that use both OpenACC and OpenMP, and use critical sections, OpenMP lock API calls, or performs I/O. OpenACC profiling of these applications is still possible by disabling OpenMP profiling with the '--openmp-profiling off' option to pgprof.
Deprecations and Eliminations
CUDA 9.1 is no longer included as part of the PGI compilers installation package.
The PGI compilers installation packages no longer include pre-compiled versions of MPICH or MVAPICH.
The pgf77 driver is deprecated. Use pgfortran to compile F77 Fortran.
What's New in 18.10
Updated PGI compilers on Windows to use Microsoft's Visual Studio 2017 toolchain.
PGI compilers on Wndows now require Microsoft Visual Studio 2017
as an installation
Combined the PGI compiler packages on Windows into a single installation executable;
there are no longer separate install packages for PGI Community Edition and PGI Professional/Enterprise.
Enhanced output format and readability of the autocompare feature of PGI Compiler Assisted Software Testing (PCAST).
Added support for patch-and-continue to autocompare. When an incorrect value is detected, autocompare will emit a warning, replace the bad value with the known good value,
and continue execution. More details can be found in the PCAST Overview.
Our C and C++ compilers now have GCC-compatible support for visibility. Visibility in
this context describes how symbols should be exported from shared libraries. By default,
functions have global scope and can be called from other objects. Functions with hidden
visibility have local scope and cannot be called from other objects.
The compiler now implements -fvisibility and -fvisibility-inlines-hidden switches.
This switch tells the compiler how to set the default ELF image symbol visibility.
All symbols are marked with global visibility unless overridden with this switch or with
the visibility attribute.
This switch tells the compiler that the code does not compare pointers to inline functions
where the addresses of the two functions are from different objects. This option has the
same effect as marking inline methods with __attribute__((visibility(“hidden”))).
Added support for Fortran 2018 DO CONCURRENT. The body of the DO CONCURRENT
block is executed serially.
We now generate debug metadata for Fortran COMMON blocks when compiling with the
LLVM-based code generator.
Improved Fortran MATMUL performance for small matrices.
OpenACC and CUDA Fortran
Added support for the CUDA Toolkit version 10.0. Read more about support for CUDA
Toolkit versions in CUDA Toolkit Versions.
Added support for the use of relocatable device code within shared objects on Linux
Added definition of _CUDA and __CUDA_API_VERSION to C and C++ compilers when
compiling with -Mcuda.
Disabled the nollvm sub-option for -ta=tesla and -Mcuda switches on Windows.
The Windows compilers will ignore nollvm and emit a warning to that effect.
Changed the default value of OMP_MAX_ACTIVE_LEVELS to INT_MAX.
Some Key Information:
CUDA 10.0 support –
PGI 18.10 includes components of CUDA Tookit versions 9.1, 9.2 and 10.0.
PGI command-line compilers for Windows now support Visual Studio 2017, which is required as a prerequisite.
PGI Visual Fortran (PVF) is no longer available for sale to new users. Support and updates for existing licenses will be provided through 2019.
PGI 18.7 was the last release to include bundled Microsoft toolchain components. 18.10 and future releases require users to have the Microsoft toolchain components pre-installed on their system. IMPORTANT: Only users who have purchased a PGI Professional for Windows license on or before August 31, 2018 will have access to PGI 18.7 and earlier PGI Professional for Windows releases. Since 18.10 is also a Community Edition release, we encourage you to defer new PGI Professional for Windows license sales until the release of 19.1. Sales of maintenance renewals to existing users can continue during this time.
Today we released PGI 17.5 , a quality-improvement release that
also expands operating system support to include Ubuntu 17.04 and Redhat
Enterprise Linux 6.9.
Only users with a PGI account linked to a PGI for-fee license can
download 17.5  without assistance from PGI. Licensed end-users in
large organizations who are _ not_ linked to a PGI for-fee license
should _ first contact their license administrator_ or IT department for
assistance. PGI Sales  can also assist with granting download access
to such users.
For purchase evaluations, we first encourage prospective users to try PGI Community Edition , which is currently 17.4. If prospective customers wish to try 17.5, they should contact PGI Sales for a temporary evaluation  download link.
Thank you for your continued support of PGI Compilers & Tools!
 mailto: [email protected]
 mailto: [email protected]?subject=PGI%20Professional%20Evaluation%20For%20Purchase%20Request
PGI 2017 Features and Performance
PGI Accelerator OpenACC Compilers
- New OpenACC 2.5 features:
. Added if_present clause to the update directive
. Added finalize clause to the exit data directive
. Added new init, shutdown and set directives
. Added new API routines to get and set the default async queue value
. Added support for the redefined routine bind clause
- Behavior changes:
. Changed exit data directive behavior to decrement dynamic reference count
- .Improved performance of the cache directive
- Added support for CUDA 8.0; CUDA 7.5 is now default
- Support for compute capability 2.0 (Fermi) devices no longer included by default
PGI C++ Compiler
- Comprehensive support of C++14, requires GCC version 5.1 or greater; full interoperability with GCC 5.1 through 6.2
- Added C++11 support when used as the nvcc host compiler; requires updated nvcc
- Improved exception handling
PGI Fortran Compiler for OpenPOWER CPUs
- Preliminary support for OpenMP 4.5 on OpenPOWER CPUs; GPU offload not yet supported
- Average performance improvements of 5–10% on floating-point intensive codes
All PGI Compilers
- Floating point divides are now guaranteed to be uniform for both scalar and vector operations
- Additional tuned numerical math intrinsic functions for Intel Haswell and Broadwell x86 CPUs
- Improved inlining
- PGDBG debugger supports variable rollover
- Updated Eclipse plug-in for use with Neon and Mars (x86) and Mars and Luna (OpenPOWER)
- Linux products now ship with pre-built Open MPI 1.10.2; MVAPICH 2.2 and MPICH 3.2 available to current support subscribers
- Pre-built versions of NetCDF 22.214.171.124 and Parallel NetCDF 1.7.0 available online
- Pre-built versions of the Earth System Modeling Framework (ESMF) 7.0.0 available online; one - per PGI-built MPI distribution
Other Features, Changes and Additions
- New operating systems supported include Fedora 24, RHEL 7.2, Ubuntu 16.10, macOS 10.12 Sierra and Windows Server 2016
Deprecations and Eliminations
- PGI 2017 supports 64-bit operating systems only. Compiling 32-bit applications for execution on either 32-bit or 64-bit operating systems is ot longer supported on any platform
- PGI 2017 for macOS no longer supports CUDA Fortran or OpenaCC running on GPUS, or CUDA-x86 running on CPUs. OpenACC targeting multi-core CPUs is still supported on all platforms including macOS.
- Dropped CUDA 7.0 toolkit support
- Dropped support for macOS 10.7 (Lion) and 10.8 (Mountain Lion)