Back to Search Start Over

Seamless optimization of the GEMM kernel for task-based programming models

Authors :
Lorenzon, Arthur F.
Marques, Sandro M. V. N.
Navarro Muñoz, Antoni
Beltran Querol, Vicenç
Universitat Politècnica de Catalunya. Doctorat en Arquitectura de Computadors
Source :
UPCommons. Portal del coneixement obert de la UPC, Universitat Politècnica de Catalunya (UPC)
Publication Year :
2022
Publisher :
ACM, 2022.

Abstract

The general matrix-matrix multiplication (GEMM) kernel is a fundamental building block of many scientific applications. Many libraries such as Intel MKL and BLIS provide highly optimized sequential and parallel versions of this kernel. The parallel implementations of the GEMM kernel rely on the well-known fork-join execution model to exploit multi-core systems efficiently. However, these implementations are not well suited for task-based applications as they break the data-flow execution model. In this paper, we present a task-based implementation of the GEMM kernel that can be seamlessly leveraged by task-based applications while providing better performance than the fork-join version. Our implementation leverages several advanced features of the OmpSs-2 programming model and a new heuristic to select the best parallelization strategy and blocking parameters based on the matrix and hardware characteristics. When evaluating the performance and energy consumption on two modern multi-core systems, we show that our implementations provide significant performance improvements over an optimized OpenMP fork-join implementation, and can beat vendor implementations of the GEMM (e.g., Intel MKL and AMD AOCL). We also demonstrate that a real application can leverage our optimized task-based implementation to enhance performance.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 36th ACM International Conference on Supercomputing
Accession number :
edsair.doi.dedup.....f3d6d9a1d327b94ea65a21e179ee1840
Full Text :
https://doi.org/10.1145/3524059.3532385