2016 has been a busy time for ARM in HPC, with new hardware products becoming generally available, exciting roadmap announcements from our partners and great progress on the availability of both open-source and commercial HPC software offerings.
Introducing the Scalable Vector Extensions
ARM announced its first HPC-specific hardware architectural extension at Hot Chips 28 in August. The Scalable Vector Extensions (SVE) for HPC are the latest addition to the ARM®v8-A architecture, and provides ARM and its licensees with the flexibility to implement vector units with a broad choice of widths (128 to 2048 bits at 128-bit increments). Applications can be compiled once for the ARMv8-A SVE architecture, and executed correctly without modification on any SVE-capable implementation, irrespective of that implementation’s chosen SVE vector width. Further endorsing this technology, Fujitsu announced that the processor for the Post-K Japanese exascale supercomputer will be an SVE-capable ARMv8-A design. We are pleased to be working with Fujitsu on a variety of software ecosystem development activities to ensure high-quality SVE support across the Linux operating system stack.
While availability of SVE-enabled server SoC designs are still a few years down the road, several server-class processor implementations based on ARM architecture exist today for the HPC market and more are on the way in 2017. ARM continues to drive its HPC software ecosystem forward in support of current customer deployments and prevalent applications. ARM’s HPC ecosystem work occurs in two distinct camps: ARM internally develops and supports a variety of commercial compilers and tools and ARM collaborates with a variety of ecosystem partners on open-source software activities and deliverables.
Extending ARM’s HPC Software Products
In 2015, ARM Performance Libraries was introduced in response to customer demand for commercially-supported math libraries for ARM’s 64-bit hardware platforms, providing the routines key to HPC: BLAS, LAPACK and FFT. In 2016, ARM has put significant focus on performance enhancement, both through algorithmic modifications and micro-architectural tuning for specific ARMv8-A cores. This work includes parallelism support for the BLAS level 1 routines, and the introduction of hand-tuned kernels for BLAS level 3 routines (DGEMM performance is at over 90% of theoretical peak on an ARM Cortex-A57 processor). Some LAPACK parallelism has been improved by redesigning the algorithms to use OpenMP task parallelism, with routines now scaling smoothly up to 96 cores. The latest release also adds support for FFTW-compatible basic and advanced DFT interfaces.
Recently at SC16, ARM announced the extension of its HPC commercial product offerings with two new compiler suites: ARM Compiler for HPC and ARM SVE Compiler for HPC. The former combines the ARM Performance Libraries with ARM’s commercially-supported ARM-native compilation environment, and the latter adds support for SVE, including compiler auto-vectorization passes, SVE-tuned kernels in the ARM Performance Libraries, and the ARM Instruction Emulator, which allows SVE binary application code to execute on non-SVE ARM systems.
All of ARM’s HPC product offerings are designed for ease of deployment and use, with support for all major Linux distributions, a simple install process and integration with the popular environment modules system for HPC package management. They are the fastest way to get productive on an ARM HPC system, allowing systems administrators, developers and users to focus on higher-value tasks such as the optimization and evaluation of their applications on ARM.
Commitment to open-source
The extensive list of available open-source packages for HPC leads ARM to take a partnership approach in order to deliver on customer requirements. At ISC16, ARM announced its founding membership in the OpenHPC project in order to help define and implement a baseline set of open-source HPC codes for end-users. At SC16, ARM went public with the availability of the first release of OpenHPC for ARMv8-A as part of OpenHPC v1.2 release.
In addition, ARM recently announced significant new support for SVE in the open-source GCC and LLVM compilers, with GCC binutils support already available upstream. Full compiler support is expected to be published soon in consultation with the associated open-source compiler communities.
Open-source collaboration also occurs within the newly formed Linaro HPC SIG, and with PGI on the Flang project to deliver an LLVM-based Fortran Compiler.
Looking to the future
In 2017, ARM will continue to work closely with its ecosystem partners to ensure that its products are delivering the value that they need, tuning for a greater variety of ARM cores and ensuring that ARM’s tools remain the most cost-effective way to develop software for the ARM HPC ecosystem.
Please visit arm.com/hpc for future ecosystem updates and more details of the open-source and commercial initiatives described here.