AMD is releasing a Beta of the next release of the AMD Core Math Library (ACML).  ACML provides a free set of thoroughly optimized and threaded math routines for HPC, scientific, engineering and related compute-intensive applications. Version 6.0 sees ACML going in a direction that it has not attempted before, which is to support heterogeneous computing.  AMD designs both high performance CPU and GPU based cores, and ACML is aiming to take the best advantage of both.

A high level goal set at the outset of the project is to use ACML 6 as a drop in replacement for ACML 5 (i.e. same API as ACML 5), to take advantage of the power of heterogeneous computing without the user having to change any of their own source.  There are advantages and disadvantages of such a goal, but we feel that this is the right choice for ACML; to provide our users a quick and painless upgrade path to take advantage of AMD’s latest hardware releases. ACML 6 is leveraging the effort of the Open Source clMath libraries projects on the back end to provide the heterogeneous acceleration.

In addition, ACML 6 is introducing the common FFTW3 API’s to its supported set of interfaces (currently, a subset of the entire API is supported in beta). Users who have written applications that leverage the FFTW basic or advanced API’s should be able to link with the libraries provided in the ACML package and benefit from heterogeneous compute.  If users provide ACML an environment variable pointing to standalone CPU-centric FFTW shared libraries (not included in the ACML package), ACML will call the CPU libraries to offload compute onto CPU cores when appropriate. This is done in such a way that Fortran runtime files are not required to build or run the FFTW applications.

Lastly, ACML is introducing a scripting language for power users, to allow them to tune ACML to make the right decisions on where to offload compute. ACML will provide sensible defaults for most users applications, but power users with unique demands will be able to ‘script’ ACML to make the decisions that they would like in their environment.  More detailed information about these changes will be forthcoming in additional blogs.

In the meantime, I invite you to download the latest beta of ACML and leave us feedback in the ACML forums.

- Kent

Kent Knox is a Member of Technical Staff at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only.  Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.  

4 Responses

  1. Jason Palmer

    Hi Kent,
    I probably missed a few things in course of recent development … I am still using acml-4.3.0, with support for vector math functions. The Release Notes say vector functions were removed as of 5.0.0, and moved to a separate download available from the amd web page. However I don’t see these functions anywhere currently. Has vector math function support been discontinued altogether with the move toward heterogeneous computing?

  2. Sergio Aragon

    Hi Kent,
    I am interested in the performance of ACML for Intel processors, in particular Core i7. There was a thread 5 months ago by Marcin who showed poor performance of ACML 5.3.1 in such processors and you mentioned a possible fix this year. Does the ACML beta 6.0 address the issue? Your hunch back then was that AVX instructions were not being used by the Intel processor under 5.3.1, accounting for the factor of 3 or more loss of performance compared to MKL on Intel.

Leave a Reply