| ===================== |
| 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 |