Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the Alpaka library
Autor: | Matthes, Alexander, Widera, René, Zenker, Erik, Worpitz, Benjamin, Huebl, Axel, Bussmann, Michael |
---|---|
Rok vydání: | 2017 |
Předmět: | |
Zdroj: | J.M. Kunkel et al. (Eds.): ISC High Performance Workshops 2017, LNCS 10524, pp. 496-514, 2017 |
Druh dokumentu: | Working Paper |
DOI: | 10.1007/978-3-319-67630-2_36 |
Popis: | We present an analysis on optimizing performance of a single C++11 source code using the Alpaka hardware abstraction library. For this we use the general matrix multiplication (GEMM) algorithm in order to show that compilers can optimize Alpaka code effectively when tuning key parameters of the algorithm. We do not intend to rival existing, highly optimized DGEMM versions, but merely choose this example to prove that Alpaka allows for platform-specific tuning with a single source code. In addition we analyze the optimization potential available with vendor-specific compilers when confronted with the heavily templated abstractions of Alpaka. We specifically test the code for bleeding edge architectures such as Nvidia's Tesla P100, Intel's Knights Landing (KNL) and Haswell architecture as well as IBM's Power8 system. On some of these we are able to reach almost 50\% of the peak floating point operation performance using the aforementioned means. When adding compiler-specific #pragmas we are able to reach 5 TFLOPS/s on a P100 and over 1 TFLOPS/s on a KNL system. Comment: Accepted paper for the P\^{}3MA workshop at the ISC 2017 in Frankfurt |
Databáze: | arXiv |
Externí odkaz: |