HomeCommunityServers and Cloud Computing blog
October 22, 2026

Arm Performance Libraries 26.07 brings open-source components, new BFloat16 BLAS, fresh sparse and matrix APIs, and better performance

Arm Performance Libraries (ArmPL) 26.07 includes a host of useful updates.  These include new BFloat16 BLAS routines, new matrix addition and sparse matrix solving functionality, and performance tuning for the latest Arm-based systems.

By Nick Dingle

Share
Reading time 5 minutes

Open-source dense linear algebra and other components

Alongside the binary release of ArmPL 26.07 through the Arm Developer Website and package managers for Linux, macOS, and Windows, we have also released the dense linear algebra component of ArmPL as the stand-alone open-source perf-libs-linalg library. This contains all of ArmPL's BLAS implementations and selected LAPACK routines, such as Cholesky, LU, and QR factorizations.  Like ArmPL, it compiles and works on Linux, macOS, and Windows.

At the same time, we have moved the existing open-source ArmPL components to GitHub as well:

  • perf-libs-sparse contains high-performance sparse linear algebra functions.
  • OpenRNG is Arm's open-source Random Number Generator library.

ArmPL will continue to be released in its normal binary format, alongside upstream release of the source code for its constituent components.

Tuned for the latest Arm servers

A major highlight of 26.07 is tuning for Arm Neoverse V3 systems. This includes support for newer cloud platforms such as AWS Graviton5 and Microsoft Azure Cobalt 200. Users running HPC, simulation, analytics, or AI-adjacent workloads on these latest Arm-based systems only need to link against the latest version of the library.  This means ArmPL will deliver strong performance without requiring any application changes. 

BFloat16 BLAS Routines

One of the biggest user-facing additions in 26.07 is BFloat16 BLAS support. ArmPL now has BFloat16 routines for matrix-matrix (BGEMM) and matrix-vector (BGEMV) multiplication. It also offers AXPY-style updates, dot products, rank-1 updates, and scaling. BFloat16 is a 16-bit floating-point format that retains the same exponent range as single-precision (32-bit) floating-point but uses fewer bits for precision. It can halve storage and memory-bandwidth requirements compared with single-precision, making it useful for AI and other bandwidth-bound workloads. ArmPL 26.07 also adds mixed-precision BFloat16-to-single-precision routines, such as SBGEMM, which combine the storage and bandwidth benefits of BFloat16 inputs with the additional accuracy of single-precision accumulation and output.

Line chart showing SBGEMM performance relative to SGEMM across matrix sizes from 50 to 4,000, with speedups reaching approximately 3x.

On Neoverse V2, ArmPL 26.07's mixed-precision BFloat16-to-single-precision matrix multiplication (SBGEMM) delivers an average speedup of more than 2.3x compared with single-precision matrix multiplication (SGEMM) , across square matrices ranging from 50x50 to 4,000x4,000.

New matrix addition routines

ArmPL 26.07 introduces new matrix addition extensions with both C and Fortran interfaces:

  • ?IMATADD for in-place matrix addition, for example DIMATADD
  • ?OMATADD for out-of-place matrix addition, for example DOMATADD

In practical terms, if your application frequently performs operations such as updating one matrix using scaled contributions from two matrices or producing a third matrix from a weighted matrix sum, there are now dedicated library routines for these operations.

Sparse linear solve speedups

ArmPL 26.07 introduces support for sparse triangular solves with multiple right-hand sides through the new armpl_spsm_optimize and armpl_spsm_exec functions. These routines enable applications to analyze a sparse triangular matrix once and efficiently solve against a dense matrix of right-hand sides, avoiding the need to issue a separate sparse matrix–vector solve for each column. Full API documentation and usage guidance have also been added to the Arm Performance Libraries Reference Guide.

Bar chart comparing sparse triangular solve speedups across different matrices using 5, 10, and 20 right-hand sides. Speedups reach 13.8x.

On a 32-core Neoverse V2 system, the new routines deliver speedups of 2.2–5.9x for 5 right-hand sides, 3.5–9.7x for 10, and 3.6–13.8x for 20, across a selection of double-precision matrices from the SuiteSparse Matrix Collection. These results demonstrate why dedicated functionality for multiple sparse triangular solves is substantially more effective than a loop over independent solves.​

libamath: Broader coverage, better performance

ArmPL 26.07 also introduces two significant improvements to libamath. First, reproducible libamath coverage has been expanded across more scalar, Neon, and SVE implementations, including sin, cos, sinpi, cospi, sincos, expm1, exp2m1, exp10m1, and hypot. 

Second, we have improved performance across a wide range of vector math paths, especially for difficult inputs, exceptional cases, and slower fallback paths. This includes faster handling for logarithms, trigonometric functions, hyperbolic functions, and related special cases in Neon and SVE code paths.

Bar chart showing single-precision libamath speedups across Neon and SVE functions, comparing regular inputs with special-case inputs.

Bar chart showing double-precision libamath speedups across Neon and SVE functions, with special-case inputs achieving the largest improvements.


For example, compared with ArmPL 26.01, ArmPL 26.07 special-case processing is up to 11.8x faster for SVE double-precision cos and 11.7x faster for sin, while the corresponding Neon paths improve by up to 8.8x. SVE single-precision functions also show broad gains: cosh is 8.8x faster; log, log10, and log2 improve by 5.5–6.5x; and sinh and log1p exceed 6x.

These improvements are complemented by regular-input speedups of up to 33%. SVE double-precision exp2m1 and SVE single-precision tanh are around 33% faster, while Neon single-precision tanh, SVE exp10m1, and SVE sin improve by approximately 29%, 25%, and 23%, respectively. Neon single-precision exp, exp10, and pow also gain roughly 13–16%.

These improvements are also released as part of the open-source Arm Optimized Routines library.

Additional RNG functionality

ArmPL 26.07 adds a variable-lambda Poisson method, Chi-Square reference implementations in single and double precision, and a new Niederr generator.

Conclusion

Overall, Arm Performance Libraries 26.07 delivers improvements across several key areas, including support for newer Arm servers, mixed-precision computation, new dense and sparse linear algebra routines, and faster math functions.


Log in to like this post
Share

Article text

Re-use is only permitted for informational and non-commercial or personal use only.

placeholder