Oil and Water Can Mix: An Integration of Polyhedral and
AST-Based Transformations
J. Shirako, L. Pouchet, und V. Sarkar. High Performance Computing, Networking, Storage and Analysis,
SC14: International Conference for, Seite 287--298. (November 2014)
Zusammenfassung
Optimizing compilers targeting modern multi-core machines
require complex program restructuring to expose the best
combinations of coarse- and fine-grain parallelism and data
locality. The polyhedral compilation model has provided
significant advancements in the seamless handling of
compositions of loop transformations, thereby exposing multiple
levels of parallelism and improving data reuse. However, it
usually implements abstract optimization objectives, for example
``maximize data reuse'', which often does not deliver best
performance, e.g., The complex loop structures generated can be
detrimental to short-vector SIMD performance. In addition,
several key transformations such as pipeline-parallelism and
unroll-and-jam are difficult to express in the polyhedral
framework. In this paper, we propose a novel optimization flow
that combines polyhedral and syntactic/AST-based
transformations. It generates high-performance code that
contains regular loops which can be effectively vectorized,
while still implementing sufficient parallelism and data reuse.
It combines several transformation stages using both polyhedral
and AST-based transformations, delivering performance
improvements of up to 3× over the PoCC polyhedral
compiler on Intel Nehalem and IBM Power7 multicore processors.
%0 Conference Paper
%1 Shirako2014-mo
%A Shirako, J
%A Pouchet, L-N
%A Sarkar, V
%B High Performance Computing, Networking, Storage and Analysis,
SC14: International Conference for
%D 2014
%K AST AST-based_transformations Arrays Data_models IBM_Power7_multicore_processor Intel_Nehalem_multicore_processor Nickel Optimization Parallel_processing PoCC_polyhedral_compiler Polyhedral_model Schedules Silicon To_Read abstract_optimization coarse-grain_parallelism complex_loop_structures data_locality data_reuse_maximization data_reusing fine-grain_parallelism high-performance_code_generation loop_transformations multicore_machines optimising_compilers optimization_flow optimizing_compilers parallelising_compilers pipeline-parallelism polyhedral-based_transformations polyhedral_compilation_model polyhedral_framework program_restructuring seamless_composition_handling short-vector_SIMD_performance syntactic-based_transformation transformation_stages unroll-and-jam
%P 287--298
%T Oil and Water Can Mix: An Integration of Polyhedral and
AST-Based Transformations
%X Optimizing compilers targeting modern multi-core machines
require complex program restructuring to expose the best
combinations of coarse- and fine-grain parallelism and data
locality. The polyhedral compilation model has provided
significant advancements in the seamless handling of
compositions of loop transformations, thereby exposing multiple
levels of parallelism and improving data reuse. However, it
usually implements abstract optimization objectives, for example
``maximize data reuse'', which often does not deliver best
performance, e.g., The complex loop structures generated can be
detrimental to short-vector SIMD performance. In addition,
several key transformations such as pipeline-parallelism and
unroll-and-jam are difficult to express in the polyhedral
framework. In this paper, we propose a novel optimization flow
that combines polyhedral and syntactic/AST-based
transformations. It generates high-performance code that
contains regular loops which can be effectively vectorized,
while still implementing sufficient parallelism and data reuse.
It combines several transformation stages using both polyhedral
and AST-based transformations, delivering performance
improvements of up to 3× over the PoCC polyhedral
compiler on Intel Nehalem and IBM Power7 multicore processors.
@inproceedings{Shirako2014-mo,
abstract = {Optimizing compilers targeting modern multi-core machines
require complex program restructuring to expose the best
combinations of coarse- and fine-grain parallelism and data
locality. The polyhedral compilation model has provided
significant advancements in the seamless handling of
compositions of loop transformations, thereby exposing multiple
levels of parallelism and improving data reuse. However, it
usually implements abstract optimization objectives, for example
``maximize data reuse'', which often does not deliver best
performance, e.g., The complex loop structures generated can be
detrimental to short-vector SIMD performance. In addition,
several key transformations such as pipeline-parallelism and
unroll-and-jam are difficult to express in the polyhedral
framework. In this paper, we propose a novel optimization flow
that combines polyhedral and syntactic/AST-based
transformations. It generates high-performance code that
contains regular loops which can be effectively vectorized,
while still implementing sufficient parallelism and data reuse.
It combines several transformation stages using both polyhedral
and AST-based transformations, delivering performance
improvements of up to 3\texttimes{} over the PoCC polyhedral
compiler on Intel Nehalem and IBM Power7 multicore processors.},
added-at = {2015-04-11T18:41:09.000+0200},
author = {Shirako, J and Pouchet, L-N and Sarkar, V},
biburl = {https://www.bibsonomy.org/bibtex/26fe1b74e8d475b538711f45a4c002cd0/christophv},
booktitle = {High Performance Computing, Networking, Storage and Analysis,
{SC14}: International Conference for},
interhash = {9ad290119932b709907c1f0f875386be},
intrahash = {6fe1b74e8d475b538711f45a4c002cd0},
keywords = {AST AST-based_transformations Arrays Data_models IBM_Power7_multicore_processor Intel_Nehalem_multicore_processor Nickel Optimization Parallel_processing PoCC_polyhedral_compiler Polyhedral_model Schedules Silicon To_Read abstract_optimization coarse-grain_parallelism complex_loop_structures data_locality data_reuse_maximization data_reusing fine-grain_parallelism high-performance_code_generation loop_transformations multicore_machines optimising_compilers optimization_flow optimizing_compilers parallelising_compilers pipeline-parallelism polyhedral-based_transformations polyhedral_compilation_model polyhedral_framework program_restructuring seamless_composition_handling short-vector_SIMD_performance syntactic-based_transformation transformation_stages unroll-and-jam},
month = nov,
pages = {287--298},
timestamp = {2015-04-11T18:41:09.000+0200},
title = {Oil and Water Can Mix: An Integration of Polyhedral and
{AST-Based} Transformations},
year = 2014
}