Polybench/Fortran
From HPCRL Wiki
(Difference between revisions)
(→Description) |
(→Download) |
||
Line 85: | Line 85: | ||
== Download == | == Download == | ||
− | * [http:// | + | * Download Polybench/Fortran 1.0: [http://www.cse.ohio-state.edu/~pouchet/software/polybench/download.html polybench-fortran-1.0.tar.gz] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Documentation == | == Documentation == |
Revision as of 16:39, 29 March 2012
Contents |
News
- 03/28/12: Public release of PolyBench/Fortran 1.0 Download. PolyBench/Fortran is a port of PolyBench/C 3.2 in Fortran, written by Mohanish Narayan.
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.
Benchmark | Description |
---|---|
2mm | 2 Matrix Multiplications (D=A.B; E=C.D) |
3mm | 3 Matrix Multiplications (E=A.B; F=C.D; G=E.F) |
adi | Alternating Direction Implicit solver |
atax | Matrix Transpose and Vector Multiplication |
bicg | BiCG Sub Kernel of BiCGStab Linear Solver |
cholesky | Cholesky Decomposition |
correlation | Correlation Computation |
covariance | Covariance Computation |
doitgen | Multiresolution analysis kernel (MADNESS) |
durbin | Toeplitz system solver |
dynprog | Dynamic programming (2D) |
fdtd-2d | 2-D Finite Different Time Domain Kernel |
fdtd-apml | FDTD using Anisotropic Perfectly Matched Layer |
gauss-filter | Gaussian Filter |
gemm | Matrix-multiply C=alpha.A.B+beta.C |
gemver | Vector Multiplication and Matrix Addition |
gesummv | Scalar, Vector and Matrix Multiplication |
gramschmidt | Gram-Schmidt decomposition |
jacobi-1D | 1-D Jacobi stencil computation |
jacobi-2D | 2-D Jacobi stencil computation |
lu | LU decomposition |
ludcmp | LU decomposition |
mvt | Matrix Vector Product and Transpose |
reg-detect | 2-D Image processing |
seidel | 2-D Seidel stencil computation |
symm | Symmetric matrix-multiply |
syr2k | Symmetric rank-2k operations |
syrk | Symmetric rank-k operations |
trisolv | Triangular solver |
trmm | Triangular matrix-multiply |
Download
- Download Polybench/Fortran 1.0: polybench-fortran-1.0.tar.gz
Documentation
Please note that the following document is preliminary. The documentation will be improved soon. In the meantime, don't hesitate to contact the author for any question.
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>