| # Test-Suite Extensions |
| |
| ## Abstract |
| |
| These are ideas for additional programs, benchmarks, applications and |
| algorithms that could be added to the LLVM Test-Suite. |
| The test-suite could be much larger than it is now, which would help us |
| detecting compiler errors (crashes, miscompiles) during development. |
| |
| Most probably, the reason why the programs below have not been added to |
| the test-suite yet is that nobody has found time to do it. But there |
| might be other issues as well, such as |
| |
| - Licensing (Support can still be added as external module, |
| like for the SPEC benchmarks) |
| |
| - Language (in particular, there is no official LLVM frontend |
| for FORTRAN yet) |
| |
| - Parallelism (currently, all programs in test-suite use |
| one thread only) |
| |
| ## Benchmarks |
| |
| ### SPEC CPU 2017 |
| |
| <https://www.spec.org/cpu2017/> |
| |
| The following have not been included yet because they contain Fortran |
| code. |
| |
| In case of cactuBSSN only a small portion is Fortran. The hosts's |
| Fortran compiler could be used for these parts. |
| |
| Note that CMake's Ninja generator has difficulties with Fortran. See the |
| [CMake documentation](https://cmake.org/cmake/help/v3.13/generator/Ninja.html#fortran-support) |
| for details. |
| |
| - 503.bwaves_r/603.bwaves_s |
| - 507.cactuBSSN_r |
| - 521.wrf_r/621.wrf_s |
| - 527.cam4_r/627.cam4_s |
| - 628.pop2_s |
| - 548.exchange2_r/648.exchange2_s |
| - 549.fotonik3d_r/649.fotonik3d_s |
| - 554.roms_r/654.roms_s |
| |
| ### SPEC OMP2012 |
| |
| <https://www.spec.org/omp2012/> |
| |
| - 350.md |
| - 351.bwaves |
| - 352.nab |
| - 357.bt331 |
| - 358.botsalgn |
| - 359.botsspar |
| - 360.ilbdc |
| - 362.fma3d |
| - 363.swim |
| - 367.imagick |
| - 370.mgrid331 |
| - 371.applu331 |
| - 372.smithwa |
| - 376.kdtree |
| |
| ### OpenCV |
| |
| <https://opencv.org/> |
| |
| ### OpenMP 4.x SIMD Benchmarks |
| |
| <https://github.com/flwende/simd_benchmarks> |
| |
| ### PWM-benchmarking |
| |
| <https://github.com/tbepler/PWM-benchmarking> |
| |
| ### SLAMBench |
| |
| <https://github.com/pamela-project/slambench> |
| |
| ### FireHose |
| |
| <http://firehose.sandia.gov/> |
| |
| ### A Benchmark for the C/C++ Standard Library |
| |
| <https://github.com/hiraditya/std-benchmark> |
| |
| ### OpenBenchmarking.org CPU / Processor Suite |
| |
| <https://openbenchmarking.org/suite/pts/cpu> |
| |
| This is a subset of the |
| [Phoronix Test Suite](https://github.com/phoronix-test-suite/phoronix-test-suite/) |
| and is itself a collection of benchmark suites |
| |
| ### Parboil Benchmarks |
| |
| <http://impact.crhc.illinois.edu/parboil/parboil.aspx> |
| |
| ### MachSuite |
| |
| <https://breagen.github.io/MachSuite/> |
| |
| ### Rodinia |
| |
| <http://lava.cs.virginia.edu/Rodinia/download_links.htm> |
| |
| Rodinia has already been partially included in |
| MultiSource/Benchmarks/Rodinia. Benchmarks still missing are: |
| |
| - streamcluster |
| - particlefilter |
| - nw |
| - nn |
| - myocyte |
| - mummergpu |
| - lud |
| - leukocyte |
| - lavaMD |
| - kmeans |
| - hotspot3D |
| - heartwall |
| - cfd |
| - bfs |
| - b+tree |
| |
| ### vecmathlib tests harness |
| |
| <https://bitbucket.org/eschnett/vecmathlib/wiki/Home> |
| |
| ### PARSEC |
| |
| <http://parsec.cs.princeton.edu/> |
| |
| ### Graph500 reference implementations |
| |
| <https://github.com/graph500/graph500/tree/v2-spec> |
| |
| ### NAS Parallel Benchmarks |
| |
| <https://www.nas.nasa.gov/publications/npb.html> |
| |
| The official benchmark is written in Fortran, but an unofficial |
| C-translation is available as well: |
| <https://github.com/benchmark-subsetting/NPB3.0-omp-C> |
| |
| ### DARPA HPCS SSCA#2 C/OpenMP reference implementation |
| |
| <http://www.highproductivity.org/SSCABmks.htm> |
| |
| This web site does not exist any more, but there seems to be a copy of |
| some of the benchmarks |
| <https://github.com/gtcasl/hpc-benchmarks/tree/master/SSCA2v2.2> |
| |
| ### Kokkos |
| |
| <https://github.com/kokkos/kokkos-kernels/tree/master/perf_test> |
| <https://github.com/kokkos/kokkos/tree/master/benchmarks> |
| |
| ### PolyMage |
| |
| <https://github.com/bondhugula/polymage-benchmarks> |
| |
| ### PolyBench |
| |
| <https://sourceforge.net/projects/polybench/> |
| |
| A modified version of Polybench 3.2 is already presented in |
| SingleSource/Benchmarks/Polybench. A newer version 4.2.1 is available. |
| |
| ### High Performance Geometric Multigrid |
| |
| <https://crd.lbl.gov/departments/computer-science/PAR/research/hpgmg/> |
| |
| ### RAJA Performance Suite |
| |
| <https://github.com/LLNL/RAJAPerf> |
| |
| ### CORAL-2 Benchmarks |
| |
| <https://asc.llnl.gov/coral-2-benchmarks/> |
| |
| Many of its programs have already been integrated in |
| MultiSource/Benchmarks/DOE-ProxyApps-C and |
| MultiSource/Benchmarks/DOE-ProxyApps-C++. |
| |
| - Nekbone |
| - QMCPack |
| - LAMMPS |
| - Kripke |
| - Quicksilver |
| - PENNANT |
| - Big Data Analytic Suite |
| - Deep Learning Suite |
| - Stream |
| - Stride |
| - ML/DL micro-benchmark |
| - Pynamic |
| - ACME |
| - VPIC |
| - Laghos |
| - Parallel Integer Sort |
| - Havoq |
| |
| ### NWChem |
| |
| <http://www.nwchem-sw.org/index.php/Benchmarks> |
| |
| ### TVM |
| |
| <https://github.com/dmlc/tvm/tree/main/apps/benchmark> |
| |
| ### HydroBench |
| |
| <https://github.com/HydroBench/Hydro> |
| |
| ### ParRes |
| |
| <https://github.com/ParRes/Kernels/tree/default/Cxx11> |
| |
| ## Applications/Libraries |
| |
| ### GnuPG |
| |
| <https://gnupg.org/> |
| |
| ### Blitz++ |
| |
| <https://sourceforge.net/projects/blitz/> |
| |
| ### FFmpeg |
| |
| <https://ffmpeg.org/> |
| |
| ### FreePOOMA |
| |
| <http://www.nongnu.org/freepooma/> |
| |
| ### FTensors |
| |
| <http://www.wlandry.net/Projects/FTensor> |
| |
| ### rawspeed |
| |
| <https://github.com/darktable-org/rawspeed> |
| |
| Its test dataset is 756 MB in size, which is too large to be included |
| into the test-suite repository. |
| |
| ### C++ Performance Benchmarks |
| |
| <https://gitlab.com/chriscox/CppPerformanceBenchmarks> |
| |
| ## Generic Algorithms |
| |
| ### Image processing |
| |
| #### Resampling |
| |
| - Bilinear |
| - Bicubic |
| - Lanczos |
| |
| #### Dither |
| |
| - Threshold |
| - Random |
| - Halftone |
| - Bayer |
| - Floyd-Steinberg |
| - Jarvis |
| - Stucki |
| - Burkes |
| - Sierra |
| - Atkinson |
| - Gradient-based |
| |
| #### Feature detection |
| |
| - Harris |
| - Histogram of Oriented Gradients |
| |
| #### Color conversion |
| |
| - RGB to grayscale |
| - HSL to RGB |
| |
| ### Graph |
| |
| #### Search Algorithms |
| |
| - Breadth-First-Search |
| - Depth-First-Search |
| - Dijkstra's algorithm |
| - A-Star |
| |
| #### Spanning Tree |
| |
| - Kruskal's algorithm |
| - Prim's algorithm |