PolyOpt/Fortran
(→News) |
(→Description) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
* Numerous under-the-hood functionalities and optimizations | * Numerous under-the-hood functionalities and optimizations | ||
− | Note | + | Note that only a subset of Fortran is currently supported by PolyOpt/Fortran: see [[PolyOpt/C]] for C/C++ programs support. |
== News == | == News == | ||
− | * | + | * 03/09/2012: Release of the 0.1.0 version of PolyOpt/Fortran. |
== Download == | == Download == | ||
− | * [http://hpcrl.cse.ohio-state.edu/downloads/polyopt-0.1.0 | + | * [http://hpcrl.cse.ohio-state.edu/downloads/polyopt-fortran-0.1.0.tar.gz PolyOpt/Fortran 0.1.0] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Documentation == | == Documentation == | ||
− | Please note that the following document is preliminary. The documentation will be improved soon. In the meantime, | + | Please note that the following document is preliminary. The documentation will be improved soon. In the meantime, do not hesitate to contact the authors for any questions. |
− | + | ||
− | + | ||
+ | PolyOpt manual: [http://hpcrl.cse.ohio-state.edu/downloads/polyopt-fortran-0.1.0.pdf polyopt.pdf]. | ||
=== Installation === | === Installation === | ||
Line 36: | Line 30: | ||
The installation of PolyOpt/Fortran is packaged in an installer script install.sh. It assumes [http://www.rosecompiler.org ROSE] is built, and will download and install a local copy of [http://www.cse.ohio-state.edu/~pouchet/software/pocc PoCC]. | The installation of PolyOpt/Fortran is packaged in an installer script install.sh. It assumes [http://www.rosecompiler.org ROSE] is built, and will download and install a local copy of [http://www.cse.ohio-state.edu/~pouchet/software/pocc PoCC]. | ||
− | $> tar xzf polyopt-fortran-0.1.0 | + | $> tar xzf polyopt-fortran-0.1.0.tar.gz |
− | $> cd polyopt-fortran-0.1.0 | + | $> cd polyopt-fortran-0.1.0 |
$> export ROSE_ROOT=/path/to/rose/install | $> export ROSE_ROOT=/path/to/rose/install | ||
$> export BOOST_ROOT=/path/to/boost/install | $> export BOOST_ROOT=/path/to/boost/install | ||
$> ./install.sh | $> ./install.sh | ||
$> export PATH=$PATH:`pwd`/src | $> export PATH=$PATH:`pwd`/src | ||
− | |||
− | |||
For a test run of the compiler: | For a test run of the compiler: | ||
$> PolyRose --polyopt-help | $> PolyRose --polyopt-help | ||
− | |||
To inspect the available options: | To inspect the available options: | ||
Line 85: | Line 76: | ||
--polyopt-pluto-prevector | --polyopt-pluto-prevector | ||
--polyopt-pluto-fuse-<maxfuse,smartfuse,nofuse> | --polyopt-pluto-fuse-<maxfuse,smartfuse,nofuse> | ||
+ | |||
+ | == Acknowledgements == | ||
+ | |||
+ | |||
+ | This software was produced with support from the Defense Advanced Research Projects Agency (DARPA) through AFRL Contract FA8650-09-C-7915 and from the Department of Energy through grant DE-SC0005033. Nothing in this work should be construed as reflecting the official policy or position of the US Defense Department, the US Department of Energy, the United States government, Ohio State University, or Rice University. | ||
+ | THIS SOFTWARE HAS BEEN APPROVED FOR PUBLIC RELEASE, UNLIMITED DISTRIBUTION. |
Latest revision as of 17:56, 30 August 2012
Contents |
Description
PolyOpt/Fortran is a polyhedral loop optimization framework for Fortran, 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
Note that only a subset of Fortran is currently supported by PolyOpt/Fortran: see PolyOpt/C for C/C++ programs support.
News
- 03/09/2012: Release of the 0.1.0 version of PolyOpt/Fortran.
Download
Documentation
Please note that the following document is preliminary. The documentation will be improved soon. In the meantime, do not hesitate to contact the authors for any questions.
PolyOpt manual: polyopt.pdf.
Installation
The installation of PolyOpt/Fortran is packaged in an installer script install.sh. It assumes ROSE is built, and will download and install a local copy of PoCC.
$> tar xzf polyopt-fortran-0.1.0.tar.gz $> cd polyopt-fortran-0.1.0 $> export ROSE_ROOT=/path/to/rose/install $> export BOOST_ROOT=/path/to/boost/install $> ./install.sh $> export PATH=$PATH:`pwd`/src
For a test run of the compiler:
$> PolyRose --polyopt-help
To inspect the available options:
$> PolyRose --polyopt-help Available options for PolyOpt/Fortran: --polyopt-help Verbosity options: --polyopt-verbose --polyopt-quiet Main optimization paths: --polyopt-fixed-tiling --polyopt-parametric-tiling --polyopt-parallel-only Scop extraction related options: --polyopt-generic-scop-extractor --polyopt-approximate-scop-extractor --polyopt-safe-math-func --polyopt-scop-extractor-verbose=1 --polyopt-scop-extractor-verbose=2 --polyopt-scop-extractor-verbose=3 --polyopt-scop-extractor-verbose=4 Main driver related options: --polyopt-generate-pragmas Codegen related options: --polyopt-codegen-use-past --polyopt-codegen-use-ptile --polyopt-codegen-insert-ptile-api Dependence analysis options: --polyopt-scalar-privatization PoCC related options: --polyopt-pocc-verbose --polyopt-pluto --polyopt-pluto-tile --polyopt-pluto-parallel --polyopt-pluto-prevector --polyopt-pluto-fuse-<maxfuse,smartfuse,nofuse>
Acknowledgements
This software was produced with support from the Defense Advanced Research Projects Agency (DARPA) through AFRL Contract FA8650-09-C-7915 and from the Department of Energy through grant DE-SC0005033. Nothing in this work should be construed as reflecting the official policy or position of the US Defense Department, the US Department of Energy, the United States government, Ohio State University, or Rice University. THIS SOFTWARE HAS BEEN APPROVED FOR PUBLIC RELEASE, UNLIMITED DISTRIBUTION.