0 Replies Latest reply on Jul 9, 2018 9:53 AM by prao

    AMD CPU Libraries 1.0 now available

    prao

      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

      BLIS

      • 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

      LibM

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