Polyhedral Compilation

From HPCRL Wiki
(Difference between revisions)
Jump to: navigation, search
(Packages)
(People)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
  
The HPCRL provides Free Software available for public use, to ensure the dissemination of polyhedral compiler technologies being developed by the group. This software comprises source-to-source compilers, including [[PolyOpt/C]] and [[PolyOpt/Fortran]] that provide polyhedral compilation capabilities to the [http://www.rosecompiler.org ROSE] compiler; and a collection of benchmarks.
+
The HPCRL provides Free Software available for public use, to ensure the dissemination of polyhedral compiler technologies being developed by the group. This software comprises source-to-source compilers, including [[PolyOpt/C]] and [[PolyOpt/Fortran]] that provide polyhedral compilation capabilities to the [http://www.rosecompiler.org ROSE] compiler; and a collection of benchmarks. The [[HOSTS]] (High Order STencil Synthesis) project addresses specifically the optimization of high-order stencil convolutions, and is now part of PolyOpt/C.
 
+
  
 
== People ==
 
== People ==
Line 10: Line 9:
 
* [http://www.cse.ohio-state.edu/~saday/ Prof. P. Sadayappan]
 
* [http://www.cse.ohio-state.edu/~saday/ Prof. P. Sadayappan]
 
* [http://www.cse.ohio-state.edu/~rountev/ Prof. Atanas Rountev]
 
* [http://www.cse.ohio-state.edu/~rountev/ Prof. Atanas Rountev]
 +
* [http://www.cse.ohio-state.edu/~pouchet/ Prof. Louis-Noel Pouchet]
  
=== Post-doc ===
+
=== Current students ===
  
* [http://www.cse.ohio-state.edu/~pouchet/ Dr. Louis-Noel Pouchet]
+
* [http://www.cse.ohio-state.edu/~kongm/ Martin Kong]
 +
* [http://web.cse.ohio-state.edu/~rawatp/ Prashant Singh Rawat]
  
=== Current students ===
+
=== Past students ===
  
* [http://www.cse.ohio-state.edu/~kongm/ Martin Kong]
+
* [http://www.cse.ohio-state.edu/~stockk/ Kevin Stock]
 
* [http://www.cse.ohio-state.edu/~narayanm/ Mohanish Narayan]
 
* [http://www.cse.ohio-state.edu/~narayanm/ Mohanish Narayan]
 
* [http://www.cse.ohio-state.edu/~tavarage/ Sanket Tavarageri]
 
* [http://www.cse.ohio-state.edu/~tavarage/ Sanket Tavarageri]
Line 54: Line 55:
  
 
* [http://www.cse.ohio-state.edu/~pouchet/software/polybench Polybench/C]: a collection of 30 kernels (mostly linear algebra and stencils), written in C.
 
* [http://www.cse.ohio-state.edu/~pouchet/software/polybench Polybench/C]: a collection of 30 kernels (mostly linear algebra and stencils), written in C.
* [[Polybench/Fortran]]: a port of Polybench/C to Fortran.
+
* [[Polybench/Fortran]]: a port of Polybench/C in Fortran.
  
 
== PoCC ==
 
== PoCC ==

Latest revision as of 02:42, 7 March 2015

Contents

Overview

The HPCRL provides Free Software available for public use, to ensure the dissemination of polyhedral compiler technologies being developed by the group. This software comprises source-to-source compilers, including PolyOpt/C and PolyOpt/Fortran that provide polyhedral compilation capabilities to the ROSE compiler; and a collection of benchmarks. The HOSTS (High Order STencil Synthesis) project addresses specifically the optimization of high-order stencil convolutions, and is now part of PolyOpt/C.

People

Faculty

Current students

Past students

PolyOpt

Description

PolyOpt is a polyhedral loop optimization framework, integrated in the ROSE compiler. The main features are:

  • Automatic extraction of regions that can be optimized in the polyhedral model
  • Full support of PoCC (the Polyhedral Compiler Collection) analysis and optimizations:
    • dependence analysis with Candl,
    • program transformations for tiling and parallelism with Pluto,
    • code generation with CLooG,
    • parametric tiling with PTile.
  • Numerous under-the-hood functionalities and optimizations.

Packages

We currently provide two packages:

Polybench

Description

PolyBench is a collection of benchmarks containing static control parts. The purpose is to uniformize the execution and monitoring of kernels, typically used in past and current publications. PolyBench features include:

  • A single file, tunable at compile-time, used for the kernel instrumentation. It performs extra operations such as cache flushing before the kernel execution, and can set real-time scheduling to prevent OS interference.
  • Non-null data initialization, and live-out data dump.
  • Syntactic constructs to prevent any dead code elimination on the kernel.
  • Parametric loop bounds in the kernels, for general-purpose implementation.
  • Clear kernel marking, using #pragma scop and #pragma endscop delimiters.

Packages

  • Polybench/C: a collection of 30 kernels (mostly linear algebra and stencils), written in C.
  • Polybench/Fortran: a port of Polybench/C in Fortran.

PoCC

PoCC PoCC, the Polyhedral Compiler Collection, is a flexible source-to-source iterative and model-driven compiler, embedding most of the state-of-the-art tools for polyhedral compilation. PoCC is a language-independent compiler, embedding its own internal representation of imperative programs that can be manipulated in the polyhedral model.

PoCC embeds powerful Free software for polyhedral compilation. This software is accessible from the main driver, and several IR conversion functions allows to communicate easily between passes of the compiler:

  • Clan, the Chunky loop analyzer, to extract a polyhedral intermediate representation from the source code
  • Candl, the Chunky analyzer for dependences in loops, to compute polyhedral dependences from the polyhedral IR
  • LetSee, the Legal transformation Space explorator, for iterative compilation using affine multidimensional schedules
  • PLuTo, an automatic parallelizer and locality optimizer for multicores, for powerful optimization with tiling and parallelism in the polyhedral model
  • CLooG, the Chunky Loop Generator, to generate syntactic code from the polyhedral representation
  • PIPLib, the Parametric Integer Programming Library
  • PolyLib, the Polyhedral Library
  • ISL, the Integer Set Library
  • FM, the Fourier-Motzkin library
Personal tools