|  | ===================== | 
|  | Test-Suite Extensions | 
|  | ===================== | 
|  |  | 
|  | .. contents:: | 
|  | :depth: 1 | 
|  | :local: | 
|  |  | 
|  | 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 |