Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# OS / Desktop
.DS_Store/
Thumbs.db

# Python
__pycache__/
*.py[cod]
*$py.class
*.so

# Virtual Environments
.env
.venv
venv/
ENV/
env/

# IDE / Editor
.idea/
.vscode/
*.swp
*.swo

# Build and Distribution
build/
dist/
*.egg-info/
.eggs/
*.egg

# Testing / Coverage
.pytest_cache/
.coverage
htmlcov/
.tox/

# C / C++ Objects and Executables
*.o
*.obj
*.out
*.exe
*.dll
*.dylib
*.dSYM/

# Jupyter Notebooks
.ipynb_checkpoints/
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# HLSProject
## Testing PR feature
Binary file added datasets/.DS_Store
Binary file not shown.
Binary file added datasets/PolyBenchC/.DS_Store
Binary file not shown.
17 changes: 17 additions & 0 deletions datasets/PolyBenchC/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
* * * * * * * * * * * * *
* Authors of PolyBench *
* * * * * * * * * * * * *


* Louis-Noel Pouchet <pouchet@cse.ohio-state.edu>
Who provided packaging and harmonization of all test files,
the PolyBench infrastructure and machinery, and several
reference C files.

* Uday Bondugula <uday@csa.iisc.ernet.in>
Who provided many of the original reference C files, including
Fortran to C translation.

* Tomofumi Yuki <tomofumi.yuki@inria.fr>
Who provided all the fixes implemented in 4.0, and is now the maintainer
of PolyBench/C.
147 changes: 147 additions & 0 deletions datasets/PolyBenchC/CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
-------------------
* Changes in 4.2.1:
-------------------
- Fixed an issue with PAPI support.
Reported by Keyur Joshi <cs13b1014@iith.ac.in>
- Added support for PAPI 5.4.x.

-----------------
* Changes in 4.2:
-----------------
- Fixed an issue with OpenMP pragma for flush_cache.
Reported by Sudheer Kumar <sudheer3@gmail.com>.
- Fixed a bug in Makefile generation (utilities/makefile-gen.pl).
Reported by Willy Wolff <willy.mh.wolff@gmail.com>.
- Fixed a bug in syr2k that caused the kernel to perform twice the work.
It was computing the full symmetric output whereas the BLAS version
only computes one side of the symmetry.
- Input generation for some of the kernels has been updated to produce
fewer zeros in output.
- Add support for inter-array padding when using heap allocation,
and adjust the allocation alignment with posix_memalign to 4096.

-----------------
* Changes in 4.1:
-----------------
- Added LICENSE.txt
- Fixed a bug in documentation of cholesky. (Reported by François Gindraud)
- Removed two statements from cholesky, which were useless with inplace
memory allocation. (Reported by François Gindraud)
- Updated polybench.R in utilities to match the change in input generation
of lu/ludcmp/cholesky.
- Simplified the macros for switching between data types.
- Now users may specify DATA_TYPE_IS_XXX where XXX is one of
FLOAT/DOUBLE/INT to change all macros associated with data types.
- Fixed a typo in Jacobi-1d loop iterators.
- Fixed issues with SCALAR_VAL macro in some kernels.
(Reported by Sven Verdoolaege)
- Fixed a typo in POLYBENCH_GFLOPS system.

-----------------
* Changes in 4.0:
-----------------

This is a detailed ChangeLog for PolyBench/C 4.0 to indicate all
changes made from version 3.2. Due to the high number of changes,
users should be warned the baseline performance of kernels available
in both PolyBench/C 3.2 and 4.0 may differ.


= General
- tuned the initialization functions to reduce the possibility to have 'inf'
in outputs. Specifically, the initial values are much closer to 1 for most
linear algebra kernels now (was up to N in prior versions).
- changed the name of predefined problem sizes STANDARD to MEDIUM.
- changed the default dataset to LARGE.
- added a few perl scripts to utilities.
- replaced create_cpped_version.sh with a perl script.
- fixed a bug in polybench.h when 4D arrays were allocated. (extra comma)
(Reported by Amarin Phaosawasdi)
- added polybench.pdf as a documentation of all kernels and its
underlying algorithms
- added POLYBENCH_USE_RESTRICT to allow compilers to assume alias-free
(Patch by Tobias Grosser)
- added SCALAR_VAL, SQRT_FUN, EXP_FUN, and POW_FUN macros to switch
float/double versions of the math functions depending on the data type.
- changed naming of a variable in polybench.c/xmalloc to avoid
issues when compiled as C++ (Reported by Sven Verdoolaege)
- changed the outputs produced by POLYBENCH_DUMP_ARRAYS option to
separately print out each array.
- added polybench.R in utilities which defines datamining and
linear-algebra kernels using R script for testing.

= Datamining
- fixed a bug in covariance where array size and loop bounds did not
match each other, causing out-of-bounds for certain parameters.
(Reported by Tobias Grosser)
- fixed a bug in covariance where division by N at the end was missing.
- fixed the initialization of float_n in covariance and correlation. The value
is supposed to be the input size N casted as floats to be used in division,
but was initialized to 1.2.
- changed the name of array 'symmat' in covariance to 'cov'.
- changed the name of array 'symmat' in correlation to 'corr'.
- changed the loop indices in covariance and correlation to match
the documentation.
- removed sqrt_of_array_cell macro from correlation

= Linear Algebra
- fixed a bug in 2mm where array sizes did not match each other, causing
out-of-bounds for non-square inputs.
(Reported by Tobias Grosser)
- fixed a bug in syrk where the loop bounds were incorrect, having
rectangular loop instead of triangular.
- fixed a bug in trmm where loop bounds were incorrect, using the wrong
triangular region in the multiplication.
- reduced the size of 'sum' array in doitgen from 3D to 1D to avoid obvious
waste in memory.
- removed A from print_arrays in gramschmidt; A is updated, but is
not an output.
- removed dynprog; replaced by nussinov in medley.
- moved BLAS kernels (including updated BLAS) to its own sub-category.
- BLAS kernels are now commented with the parameters in original BLAS
which corresponds to the implementation in PolyBench.
- BLAS kernels now closely matches the original version. However, gemver and
gesummv remains the same as it is not part of current BLAS.
- moved cholesky and trisolv to solvers.
- re-implemented cholesky so that it computes the full L
inplace. Previously the diagonal was stored in a separate vector.
- re-implemented durbin to match Durbin's algorithm from a book. There were
off-by-one errors and an excessive memory allocation (due to expanding
accumulation of a summation).
- re-implemented lu. The original implementation was missing a inner most
loop for computing the U matrix.
- re-implemented ludcmp. There were off-by-one errors leading to
incorrect outputs.
- lu and ludcmp now use same input as cholesky to ensure it works.
- input of cholesky/lu/ludcmp now uses L.L^T instead of L^T.L to
create inputs.
- loop bounds of symm/syrk/syr2k/trmm are changed to match the documentation.

= Medley
- changed default datatype of floyd_warshall from double to int.
- removed reg_detect; replaced by deriche.
- added nussinov; a dynamic programming algorithm for sequence alignment.
(Code by Dave Wonnacott and his students)
- added deriche; edge detector filter.
(Code by Gael Deest)

= Stencils
- re-implemented adi based on a figure in "Automatic Data and
Computation Decomposition on Distributed Memory Parallel
Computers" by Peizong Lee and Zvi Meir Kedem, TOPLAS, 2002
- removed fdtd-apml; replaced by heat-3d
- added heat-3d; Heat equation over 3D data domain (4D iteration space)
(Original specification from Pochoir compiler test case)
- changed jacobi-1d-imper and jacobi-2d-imper to jacobi-1d and
jacobi-2d, respectively.
- jacobi-1d, jacobi-2d, and heat-3d performs two time steps using
alternating arrays per an iteration of the outermost loop. This is
to avoid the copy loop in the old xxx-imper versions. The number
of stencil iterations are now restricted to be even numbers (2x of
the parameter TSTEPS).

= Known Issues
- output of correlation will always be mostly 1.0 due to how the input
is generated. It is difficult to avoid this case when the input
is some function of the indices, and will be addressed with more
fundamental update in the future.
51 changes: 51 additions & 0 deletions datasets/PolyBenchC/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
OHIO STATE UNIVERSITY SOFTWARE DISTRIBUTION LICENSE

PolyBench/C, a collection of benchmarks containing static control
parts (the “Software”)
Copyright (c) 2010-2016, Ohio State University. All rights reserved.

The Software is available for download and use subject to the terms
and conditions of this License. Access or use of the Software
constitutes acceptance and agreement to the terms and conditions of
this License. Redistribution and use of the Software in source and
binary forms, with or without modification, are permitted provided
that the following conditions are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the capitalized paragraph below.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the capitalized paragraph below in
the documentation and/or other materials provided with the
distribution.

3. The name of Ohio State University, or its faculty, staff or
students may not be used to endorse or promote products derived from
the Software without specific prior written permission.

This software was produced with support from the U.S. Defense Advanced
Research Projects Agency (DARPA), the U.S. Department of Energy (DoE)
and the U.S. National Science Foundation. Nothing in this work should
be construed as reflecting the official policy or position of the
Defense Department, the United States government or Ohio State
University.

THIS SOFTWARE HAS BEEN APPROVED FOR PUBLIC RELEASE, UNLIMITED
DISTRIBUTION. THE SOFTWARE IS PROVIDED “AS IS” AND WITHOUT ANY
EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, WARRANTIES OF ACCURACY, COMPLETENESS, NONINFRINGEMENT,
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
ACCESS OR USE OF THE SOFTWARE IS ENTIRELY AT THE USER’S RISK. IN NO
EVENT SHALL OHIO STATE UNIVERSITY OR ITS FACULTY, STAFF OR STUDENTS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE USER SHALL
INDEMNIFY, DEFEND AND HOLD HARMLESS OHIO STATE UNIVERSITY AND ITS
FACULTY, STAFF AND STUDENTS FROM ANY AND ALL CLAIMS, ACTIONS, DAMAGES,
LOSSES, LIABILITIES, COSTS AND EXPENSES, INCLUDING ATTORNEYS’ FEES AND
COURT COSTS, DIRECTLY OR INDIRECTLY ARISING OUT OF OR IN CONNECTION
WITH ACCESS OR USE OF THE SOFTWARE.
Loading