AMD CPU Foundation Libraries for EPYC™ processors

Exciting times at AMD with several new product launches. The recently announced EPYCTM series of CPU processors cater to the high-performance needs of the data center market. With its “Zen” cores, it delivers great performance across wide range of integer and floating point workloads. One of the key component in most scientific and high performance computing (HPC) applications that target the data centers is math (mathematical) libraries. They form the fundamental block for performing high number crunching operations including matrix operations, linear algebra solvers, Fourier Transforms, random numbers and many others. AMD has released its first suite of math Libraries that target the EPYCTM CPU processors. The libraries are well-tuned to help extract exceptional performance out of the Zen core architecture.

AMD CPU Foundation Libraries comprise of five packages, primarily,

  1. BLIS (BLAS Library) – BLIS is a portable open-source software framework for instantiating high-performance Basic Linear Algebra Subprograms (BLAS) functionality. BLIS library expresses most computations of matrix-matrix and matrix-vector BLAS operations in terms of simple kernels. Some of these essential core kernels of computation have been optimized for the AMD EPYCTM processor family.
  2. libFLAME (LAPACK) – libFLAME is a portable library for dense matrix computations, providing much of the functionality present in Linear Algebra Package (LAPACK). The library aims to provide the scientific and numerical computing communities with a modern, high-performance dense linear algebra library that is extensible, easy to use, and available under an open source license. In combination with BLIS library, which includes optimizations for the AMD EPYCTM processor family, libFLAME enables running high performing LAPACK functionalities on AMD platform.
  3. AMD Random Number Generator Library – AMD Random Number Generator Library is a pseudorandom number generator library. It provides a comprehensive set of statistical distribution functions and various uniform distribution generators (base generators) including Wichmann-Hill and Mersenne Twister. The library contains five base generators and twenty-three distribution generators, in addition to hooks for user provided base generator.
  4. AMD Secure RNG – The AMD Secure Random Number Generator (RNG) is a library that provides APIs to access the cryptographically secure random numbers generated by AMD’s hardware random number generator implementation. These are highly quality robust random numbers suitable for cryptographic applications.
  5. libM (Math Library) – AMD libM is a software library containing a collection of basic math functions optimized for x86-64 processor based machines. It provides many routines from the list of standard C99 math functions. Applications can link into AMD LibM library and invoke math functions instead of compiler’s math functions for better accuracy and performance.

In addition, FFTW (Fast Fourier Transform in the West), a popular open source FFT library has been tuned for AMD EPYCTM processor and is supported by its maintainer Matteo Frigo. The FFTW library consists of comprehensive collection of fast C routines for computing the discrete Fourier transform (DFT) and various special cases thereof. The main FFTW webpage can be found here.

More details on the functionalities exposed by the libraries, optimizations of the current AMD CPU Libraries 0.9 Beta release and download instructions can be found on the developer site here. Blogs providing further information on the individual math libraries and performance improvements to follow soon.

All said, it’s still a Beta! Your feedback will help us define and improve the quality of the libraries.

Pradeep Rao is an SMTS developer for CPU Libraries team at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.


The information contained herein is for informational purposes only, and is subject to change without notice. While every precaution has been taken in the preparation of this document, it may contain technical inaccuracies, omissions and typographical errors, and AMD is under no obligation to update or otherwise correct this information. Advanced Micro Devices, Inc. makes no representations or warranties with respect to the accuracy or completeness of the contents of this document, and assumes no liability of any kind, including the implied warranties of noninfringement, merchantability or fitness for particular purposes, with respect to the operation or use of AMD hardware, software or other products described herein. No license, including implied or arising by estoppel, to any intellectual property rights is granted by this document. Terms and limitations applicable to the purchase or use of AMD’s products are as set forth in a signed agreement between the parties or in AMD’s Standard Terms and Conditions of Sale.

AMD, the AMD Arrow logo, EPYC and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.

© 2017 Advanced Micro Devices, Inc. All rights reserved.

Leave a Reply