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,
- 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.