Skip to content

Commit

Permalink
Initializing repository
Browse files Browse the repository at this point in the history
  • Loading branch information
bondhugula committed Aug 7, 2010
0 parents commit 097a3b3
Show file tree
Hide file tree
Showing 2,591 changed files with 853,817 additions and 0 deletions.
57 changes: 57 additions & 0 deletions ACKS
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
ACKNOWLEDGMENTS

1. NSF grants 0121676 and 0509467

2. Martin Griebl and the LooPo team for the LooPo system modules of which
were used in earlier versions of Pluto.
[Fakultät für Mathematik und Informatik
Universität Passau, Germany]

3. Cédric Bastoul for CLooG
Université Paris-Sud 11, Orsay, France

4. Cédric Bastoul and Louis-Noel Pouchet for Clan and Candl

5. Louis-Noel Pouchet for miscellaneous collaborative development

6. Sven Verdoolaege for Cloog-ISL and ISL

7. All other contributors of Cloog, Candl, Clan, and PipLib

8. Albert Hartono and Boyana Norris for Orio

9. Nicolas Vasilache

10. Youcef Bouchebaba


Bugs and fixes

1. Piotr Lesnicki and Louis-Noël Pouchet for an inscop fix

2. Jeff Hammond for pointing out an autoconf problem


Citing Pluto

Please refer to the following papers when citing Pluto. Thank you.

@inproceedings{uday08cc,
author = {Uday Bondhugula and Muthu Baskaran and Sriram
Krishnamoorthy and J. Ramanujam and A. Rountev and P.
Sadayappan},
title = {Automatic Transformations for Communication-Minimized Parallelization and Locality Optimization in the Polyhedral Model},
booktitle = {International Conference on Compiler Construction (ETAPS CC)},
year = 2008,
month = apr,
}

@inproceedings{uday08pldi,
author = {Uday Bondhugula and Albert Hartono
and J. Ramanujam and P. Sadayappan},
title = {A Practical Automatic Polyhedral Program Optimization System},
booktitle = {ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI)},
year = 2008,
month = jun
}
6 changes: 6 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

Uday Kumar Bondhugula (US version)
B Uday Kumar Reddy (Indian version)

udayreddy@gmail.com
bondhugula.1@osu.edu
339 changes: 339 additions & 0 deletions COPYING

Large diffs are not rendered by default.

153 changes: 153 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
0.6.0 BETA

1. Switch to Cloog-isl (from Cloog-polylib). ISL (Author: Sven Verdoolaege) is
integer-aware for its polyhedral operations unlike polylib, and relies on
different algorithms/machinery for its operations. Cloog with ISL
as backend leads to better code generation and code. (1) Generated code is of much
better quality (simpler bounds, simpler conditionals, shorter cleanup code, no spurious
integer empty domains), (2) no value overflows when handling deep loop nests or large
tile sizes, and (3) faster code generation typically for complex cases (deep loop nests,
complex transformations, large tile sizes and with both L1 and L2 tiling).

2. Pluto core bug fix (bounding function problem in certain cases)

3. Do not put any context on parameters by default (use --context
for minimum value on parameters).

4. Bug fix in orthogonal subspace computation

5. Some new examples


0.5.1 BETA

1. Minor bug fix: Bug in generation of OpenMP pragma in some cases (when the first hyperplane
is a parallel scalar dimension)

2. Minor bug fix: Bug in setting tile sizes from 'tile.sizes' when a permutable band
contains a scalar dimension. No tile size should have been read for the
scalar dimension.

3. Orio bug fix for unroll-jamming non-rectangular code

4. Minor inscop fix

5. Pluto core bug fix (bounding function problem in certain cases)

6. Support for privatization: thanks to Louis-Noel Pouchet; almost
everything is done in Candl

7. Do not put any context on parameters by default (use --context
for minimum value on parameters).

8. Option --nofuse now behaves correctly: distributing at inner levels too

9. Minor bug fix in orthogonal subspace computation


0.5.0 BETA

1. New polyhedral frontend and dependence tester (Clan/Candl) integrated.
All LooPo components are out of Pluto now. Thanks to Clan, affine
conditionals are now handled, besides pure function calls (assumed to be
pure). Speed of the tool has also increased with this due to a much faster
dependence tester. Use #pragma scop and #pragma endscop to demarcate
portions to be extracted and optimized. Parameters are automatically
detected. /* pluto start <parameter list> */ /* pluto end */ are no longer
needed or supported.

2. Command-line options can now be specified at any position, before or after
the file name

3. --indent option to indent output code

4. Several minor bug fixes

0.4.2 BETA

* Minor bug fixes

0.4.1 BETA

* Build issues on Mac OS X resolved

* Moved to Piplib 1.3.7

* Support for Bee+Cl@k tool with option --bee. Pragmas are inserted that the
Bee tool can handle and optimize for storage.

0.4.0 BETA

* Computation of transformations is much faster now (up to 7x in some cases)
due to optimizations in building the formulation, and better memory
allocation. SPECFP2000 swim code can be transformed (end-to-end) in 11s
instead of 41s with transformation computation time reduced to 2.8s from
31.8s.

* Band detection for tiling now more advanced (dependences satisfied at
scalar dimensions are skipped to allow identifying tilable bands across scalar
dimensions: the scalar dimension is not preserved when the band is tiled. See
test/matmul-seq.c or test/doitgen.c tiling for example

* Transformed iterator names changed to t0, t1, t2, ... from c1, c2, ..

* Transformed iterator names are indexed 0 to <num-1> instead of <1> to <num>

* Added plutune script that just steps through the command-line space of Pluto
and runs each version of the code: can be used to figure out the best set of
command-line options for a code. Just run with "./plutune <source.c>"

* Some register tiling bugs fixed (affected a few cases)


0.3.0 BETA

* GCC's preprocessor is now run on the Cloog code to replace statement text

* Ability to complete partially specified transformations through a '.precut'
file. User can himself specify a .precut file if a particular custom fusion
structure or a partial transformation should be used to start from. Pluto can
then complete it; also, allows integration with the Letsee tool which can
enumerate .precut files.

* Inscop fixed so that includes are not inserted as part of the optimized
program section but at the top of the file (Thanks to Piotr and Louis-Noël)

* Bug in computing SCCs fixed

* Bugs in register tiling fixed

* Changes to --maxfuse and --smartfuse

* Unroll and unroll-jam factor can be set with --ufactor=<factor>; 8 is the
default

* Code cleanup (less worse now)


0.2.0 BETA

* Added --smartfuse option (this is the default), --nofuse and --maxfuse
are the other two

* Added 'install'. Installation can now be done with './install'

* Fixed compilation on 32-bit systems due to libpolylib64.a not being built

* PipLib, PolyLib, and Cloog are now included. No need to download or install
them separately

* Fusion algorithm implementation for the general case is now complete (but
still not tuned). Custom fusion structures can be forced with the .fst file

* --nofuse option now to treat all SCCs separately (no fusion across SCCs even
if it is possible)

* Changes to LooPo's C++ sources to make everything compile with GCC 4.3.0

* Lots of other minor fixes


0.1.0 BETA

First release
19 changes: 19 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Pluto INSTALL
#
# Thu Dec 13 02:13:01 EST 2007
#
# Uday Bondhugula
# bondhugu@cse.ohio-state.edu
# bondhugula.1@osu.edu
#

QUICK INSTALL

$ tar zxvf pluto-0.6.0.tgz
$ cd pluto-0.6.0/
$ ./configure [--enable-debug]
$ make

* polycc is the script wrapper around src/pluto and all other
components, and it is the one to run. Please refer to the README
for more details.
54 changes: 54 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# Makefile.am
#
# Copyright (C) 2007 Uday Bondhugula
#
#
#
LOOPODIR = @SOURCE_DIR@

RM = rm -f
LN = ln -s

SUBDIRS = piplib-1.4.0 polylib-5.22.3 cloog-isl clan-0.6.0 candl-0.4.0 src

dist-hook:
rm -rf `find $(distdir)/doc -name CVS`


bin_SCRIPTS = polycc vloog ploog plorc plutune
CLEANFILES: $(bin_SCRIPTS)
EXTRA_DIST = polycc.sh.in examples test

polycc: polycc.sh
rm -f polycc
echo "#! " $(BASH) > polycc
cat $(srcdir)/polycc.sh >> polycc
chmod ugo+x polycc

.PHONY: bin binit

install:
@echo "No install target"
@echo "Please run polycc in the top-level directory"

bindir:
@if [ ! -d bin ];then \
echo mkdir bin; \
mkdir bin; \
fi

binit:
cp -f src/pluto bin/
cp -r polycc bin/

pclean:
$(MAKE) -C src clean

test: .PHO

.PHO:
./test.sh
./test.sh --tile --parallel --unroll
./test.sh --maxfuse
./test.sh --nofuse
Loading

0 comments on commit 097a3b3

Please sign in to comment.