Code Transformation Impact on Compiler-based Optimization: A Case Study in the CMSSW
Teerit Ploensin, Krerk Piromsopa, N. Srimanobhas
Abstract
Open-access reader
Teerit Ploensin, Krerk Piromsopa, N. Srimanobhas
Abstract
Open-access reader
Abstract In this paper, we study the benefit of applying loop transformations to a part of module in the CMS software. Particularly, we focus at the effect of loop transformations in term of performance improvement from the optimization process of compilers. Loop optimizations have been considered at low-level phase, such as loop unrolling using compiler directive. For high-level code transformations such as index set splitting and loop reordering, we adopt the polyhedral model to simplify the transformations. In this study, our loop optimization has been evaluated quantitatively. We study the impact on loops execution speed up and its instruction executed. Our observation shows that high-level loop optimizations can reduce both execution time and the number of instruction. This behavior suggested that simple loop transformations can trigger other optimizations. Moreover, we not only improve the overall performance, but also reduce the number of instruction. The results show that loop optimizations yield the speed up between 1.5 and 1.7.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Abstract In this paper, we study the benefit of applying loop transformations to a part of module in the CMS software. Particularly, we focus at the effect of loop transformations in term of performance improvement from the optimization process of compilers. Loop optimizations have been considered at low-level phase, such as loop unrolling using compiler directive. For high-level code transformations such as index set splitting and loop reordering, we adopt the polyhedral model to simplify the transformations. In this study, our loop optimization has been evaluated quantitatively. We study the impact on loops execution speed up and its instruction executed. Our observation shows that high-level loop optimizations can reduce both execution time and the number of instruction. This behavior suggested that simple loop transformations can trigger other optimizations. Moreover, we not only improve the overall performance, but also reduce the number of instruction. The results show that loop optimizations yield the speed up between 1.5 and 1.7.
Key concepts: Loop unrolling, Loop optimization, Compiler, Computer science, Optimizing compiler, Loop (graph theory), Parallel computing, Loop fusion