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