AMD CPU Libraries 1.0 now available

Discussion created by prao on Jul 8, 2018

We are pleased to announce the first general availability (GA) release of AMD CPU Libraries. These libraries include
some of the fundamental mathematical functions required by the scientific and high performance computing applications.

The libraries are optimized for the AMD EPYC™ processor family which target the high-performance needs of the

data center market.


As the AMD EPYC™ processor completes the first year of its launch, several companies and system partners have
deployed EPYC processors in high performance computing clusters that run scientific workloads as well as specialized

applications including virtualization, AI, and e-commerce. These systems need a rich software ecosystem to efficiently

utilize the server hardware platform. Most of the scientific applications run heavy number crunching operations including

matrix operations, linear algebra solvers, Fourier Transforms, random numbers, and many others. AMD CPU Libraries

offer mathematical libraries that are well tuned and highly optimized for EPYC hardware.


AMD CPU Libraries are comprised 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 an 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 high quality robust random numbers designed to be suitable for cryptographic applications.

   5. LibM (AMD Core 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.


Here are the main highlights of the AMD CPU Libraries 1.0 release


  • Improved GEMM performance for small matrices on AMD EPYC™ family processors
  • Enhanced optimizations of Level-2 BLAS routines including GEMV, dotv and amaxv 
  • Improved Triangular Solve Matrix (TRSM) performance for large and small matrices
  • Fine-tuned multithread performance of level 3 BLAS for AMD EPYC Family processors
  • Minimized BLIS framework overheads with improved performance for small matrix sizes


  • Includes a fast version of power function (fastpow) for double precision.
  • Enhanced optimization of single precision logf performance
  • Improved double precision power function performance for AMD EPYC processors
  • Bug fix in modulus function

AMD Secure RNG Library

  • APIs to retrieve 16-bit, 32-bit, 64-bit or arbitrary size bytes using RDRAND and RDSEED instructions
  • APIs support retrial in case of any failure in RNG hardware

AMD Random Number Generator Library

  • API to generate random numbers seeded by hardware generated Cryptographically Secure Random Number

       Generator (CSRNG). The function uses AMD Secure RNG library to seed the Mersenne Twister base generator

       and generates uniform distribution random numbers

libFLAME (LAPACK Library)

  • Updates and small improvements in test suite
  • Includes few build improvements and cross-compilation fixes

Single Installer File

  • A single installer file can now extract and install all the AMD tuned CPU libraries.


More details on the functionalities exposed by the libraries, optimizations of the current AMD CPU Libraries 1.0 release and download

instructions can be found on the developer site here. AMD welcomes your suggestions and feedback on the Libraries.