322 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
| =====================
 | |
| 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/master/apps/benchmark
 | |
| 
 | |
| HydroBench
 | |
| ----------
 | |
| https://github.com/HydroBench/Hydro
 | |
| 
 | |
| ParRes
 | |
| ------
 | |
| https://github.com/ParRes/Kernels/tree/master/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
 |