English  

 
回首頁 > 產品介紹 > 中介軟體 > 平行程式編譯套件 > PGI

平行程式編譯套件 -PGI
  最新版本說明

What's New in 20.1

All Compilers
LLVM 9.0 integrated — Upgraded Linux/x86-64 compilers to use LLVM 9.0 as the default code generator. LLVM 8.0 and the legacy PGI code generator are still available via compile and link-time command-line options.

cuTENSOR support — Added support for the new cuTENSOR library, including automatic mapping of Fortran transformational intrinsics operating on device data to cuTENSOR calls. See below for details.

New Heterogeneous OpenMP Runtime — Replaced the OpenMP runtime with a new optimized heterogeneous OpenMP runtime. In 20.1 this new runtime is used by default for multicore CPU targeting, and in future releases it will be used for integrated CPU and GPU OpenMP targeting. The new runtime is fully KMPC-compatible, but is not yet GOMP compatible, so mixing of PGI-compiled and GNU-compiled OpenMP objects is not supported and will result in a runtime error message.

AMD Rome CPUs support — The 20.1 release of the PGI Fortran, C and C++ compilers is fully supported on AMD Rome CPUs. The compilers auto-detect Rome as the default target CPU when installed and used on Rome systems.
Added support for the following versions of Linux/x86-64:
  . CentOS 7.7, 8.0, and 8.1
  . Fedora 30
  . openSUSE Leap 15.1
  . RHEL 7.7, 8.0, and 8.1
  . SLES 15 SP1
  . Ubuntu 19.04

C/C++
Upgraded the PGI C compiler pgcc significantly, including substantial support for C11.

Fortran
Improved debugging metadata for PURE, RECURSIVE, and ELEMENTAL procedures.
Improved implementation of the OpenMP API to follow the OpenMP specification. Fortran developers should import the OpenMP API by using the omp_lib module rather than by defining its types (i.e, omp_lock_t) or declaring its functions directly in the application code. Failure to do so (or failure to do so correctly) may cause an application built with the NVIDIA OpenMP runtime to function incorrectly.

OpenACC and CUDA Fortran
Added Fortran interfaces to the NVIDIA cuTENSOR library which is bundled in the PGI packages. Added support for a new cutensorEx Fortran module that maps Fortran intrinsic functions RESHAPE(), TRANSPOSE(), SPREAD() and MATMUL() operating on device data to the appropriate cuTENSOR functionality. This new feature is usable in both CUDA Fortran and OpenACC, and enables use of V100 tensor cores for operations on real(2) data......
.<See PGI 2020 Release Notes>




What's New in 19.7


OpenACC New Features and Enhancements
- Error message now issued for OpenACC data, enter data, and exit data constructs with no
   data clauses
- Changed conditions under which kernels loops containing pointer references can be
   parallelized.
- Changed how the compilers treat aggregate members used in loop bounds or loop limits
    to follow latest OpenACC spec.
- Improved support for OpenACC host_data use_device constructs
- Added support for capture of the *this pointer by value to the OpenACC C++ compiler
- Upgraded bundled CUDA to 10.1 update 1

CUDA Fortran
- Added support for half precision floating point real(2) as a first class data type
- Improved host to device data transfer performance using assignment statements for
   array sections that can be mapped onto cudaMemcpy2D.

Fortran Compiler
- Added support for the Fortran 2008 g0 editor descriptor
- Added support for multiple sourced allocations via the SOURCE argument
- Extended MAXLOC and MINLOC intrinsics to accept the optional BACK argument
- Implemented NORM2 intrinsic
- DWARF debug information improved for allocatable arrays within modules

Libraries
- New optimized atan and atan2 intrinsics for x86 processors

Deprecations and Eliminations
- PGI Debugger deprecated and will be dropped at the end of 2019

Plus 47 user-requested enhancements and fixes


What's New in 19.4

All Compilers
Version 19.4 of the PGI Compilers & Tools is a Community Edition release. We've refined and improved our support for new features introduced in 2019: Tensor Core support in CUDA Fortran, LLVM-based code generation, Full C++17 language support, support for printf() in OpenACC regions, support for CUDA 10.0 and 10.1, improved SIMD vectorization, GNU interoperability through GCC 8.1, pre-compiled Open MPI 3.1.3 libraries, support for the latest operating systems, and more. As always, refer to our TPR list for a detailed summary of bug fixes.


What's New in 19.1

All Compilers
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 11.14.1.3 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:
 •CentOS 7.6
 •Fedora 29
 •RHEL 7.6
 •Ubuntu 18.10
Added support for Windows Server 2019 and macOS Mojave.

C/C++
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.

Fortran
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.

Performance
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

All Compilers
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
prerequisite.

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.

C/C++
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.

-fvisibility=[default|internal|hidden|protected]
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.

-fvisibility-inlines-hidden
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”))).

Fortran
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
platforms.
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.

OpenMP
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.

Windows
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.



PGI

   PGI 產品介紹
   PGI Accelerator
   最新版本說明 
   版本比較表 
   規格料號及訂購 
   PGI 2020 Release Notes