Polybench/Fortran

From HPCRL Wiki
(Difference between revisions)
Jump to: navigation, search
(Description)
(Description)
Line 20: Line 20:
 
! scope="col" | Description
 
! scope="col" | Description
 
|-
 
|-
|Cell 1 || Cell 2  
+
|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
 
|-
 
|-
|Cell A
 
|Cell B
 
 
|}
 
|}
  

Revision as of 16:37, 29 March 2012

Contents

News


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.
Available benchmarks (PolyBench/Fortran version 1.0)
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

Copyright notice

This software was produced with support from the Defense Advanced Research Projects Agency (DARPA) through AFRL Contract FA8650-09-C-1915 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 Defense Department, the Department of Energy, the United States government, Ohio State University, or Rice University. THIS SOFTWARE HAS BEEN APPROVED FOR PUBLIC RELEASE, UNLIMITED DISTRIBUTION.

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>
Personal tools