Dec. 15, 2017 — On Dec 15, IBM released new compilers, XL C/C++ for Linux V13.1.6 and XL Fortran for Linux V15.1.6, to support the latest Power Systems server AC922 and NVIDIA GPU Volta.
“The new C/C++ and Fortran compilers provide full exploitation of POWER9 technology for industry-leading performance and optimize HPC and Cognitive workloads through GPU acceleration, and is ideal for HPC clients, scientists, and AI leads,” says IBM.
The POWER9 exploitation features, including a number of new POWER9 built-in functions and high-performance libraries tuned for POWER9, allow the development of optimized applications that utilize the latest POWER9 technology.
The IBM XL compilers’ support for OpenMP 4.5 is enhanced in this new release – new SIMD directives are added and functionality for existing directives is expanded to provide further exploitation and effective programming on GPU.
CUDA Fortran support is also improved to provide better performance for kernels, more functions and customized GPU configurations.
“With the best overall optimization for both CPU & GPU, XL Compilers are positioned as the performance-driven compiler brand on Power Systems to unlock HPC & Cognitive workloads. XL compilers are the ultimate choice to solve massive, complex computing tasks,” said the offering manager of IBM XL compilers.
Other key features of XL C/C++ for Linux V13.1.6 and XL Fortran for Linux V15.1.6 include:
- Adoption of Clang V4.0 frond-end technology – XL C/C++ for Linux adopts Clang V4.0 frond-end technology, which provides a large degree of compatibility with GCC. Migration to XL C/C++ for Linux is now easy and seamless. More C++14 language features are supported, such as binary integer literals, digit separators, relaxing constraints on constexpr functions, return type deduction for normal functions, etc.
- OpenMP interoperability with CUDA C/C++ and CUDA Fortran – Development of more portable applications is enabled by calling kernels written in CUDA C/C++ or CUDA Fortran in OpenMP programs from the host.
- Support for CUDA Toolkit 9.0 and 9.1 – Support for the CUDA Toolkit has been upgraded to CUDA Toolkit version 9.0 and 9.1. The sm_70 and compute_70 GPU architectures are supported as defined by the CUDA Toolkit.
- Specification of GPU architectures for the generated code – The new -qtgtarch option allows specifying the real or virtual GPU architectures where the code can run, overriding the default GPU architecture. The compiler can take maximum advantage of the capabilities and machine instructions which are specific to a GPU architecture, or common to a virtual architecture.
- Support for the cuda-memcheck tool – A new environment variable is provided to control whether to disable the check for pinned memory in the runtime and allow the program to be executed under the cuda-memcheck tool from the NVIDIA CUDA Toolkit.
- Pass LLVM IR bitcode libraries to llvm2ptx – LLVM IR bitcode libraries, which have a suffix of .bc, can be specified on the command line, to pass the LLVM IR bitcode libraries to llvm2ptx, the NVVM-IR to PTX translator.
- GPU runtime inlining support for inlining calls made to the OpenMP GPU runtime libraries – This enhancement reduces overhead and significantly improves performance of OpenMP target regions that are offloaded to the accelerator.
- Improved GPU code generation – This enhancement applies to several OpenMP directives when contained in an OpenMP target region, most notably parallel loops and reductions.
Download no-charge Community Edition and get started
The no-charge XL C/C++ for Linux and XL Fortran for Linux Community Editions are refreshed with all new functionalities, and allow for unlimited production use. They can be downloaded from the XL C/C++ for Linux and XL Fortran for Linux Marketplace website. The XL C/C++ for Linux and XL Fortran for Linux documentation on IBM Knowledge Center can guide new users through installation and basic compilation tasks. Though no official support is offered with the Community Edition, IBM compilers experts answer users’ feedback to the Community Edition raised at the XL on POWER Fortran Community Edition forum (ibm.biz/xl-power-compilers) to help users solve problems.