[Alignment][NFC] Migrate Instructions to Align
[llvm-core.git] / docs / Proposals / TestSuite.rst
blob85f3642a2e922c63fb84ce49f93402bb3e130485
1 =====================
2 Test-Suite Extentions
3 =====================
5 .. contents::
6    :depth: 1
7    :local:
9 Abstract
10 ========
12 These are ideas for additional programs, benchmarks, applications and
13 algorithms that could be added to the LLVM Test-Suite.
14 The test-suite could be much larger than it is now, which would help us
15 detecting compiler errors (crashes, miscompiles) during development.
17 Most probably, the reason why the programs below have not been added to
18 the test-suite yet is that nobody has found time to do it. But there
19 might be other issues as well, such as
21  * Licensing (Support can still be added as external module,
22               like for the SPEC benchmarks)
24  * Language (in particular, there is no official LLVM frontend
25              for FORTRAN yet)
27  * Parallelism (currently, all programs in test-suite use
28                 one thread only)
30 Benchmarks
31 ==========
33 SPEC CPU 2017
34 -------------
35 https://www.spec.org/cpu2017/
37 The following have not been included yet because they contain Fortran
38 code.
40 In case of cactuBSSN only a small portion is Fortran. The hosts's
41 Fortran compiler could be used for these parts.
43 Note that CMake's Ninja generator has difficulties with Fortran. See the
44 `CMake documentation <https://cmake.org/cmake/help/v3.13/generator/Ninja.html#fortran-support>`_
45 for details.
47  * 503.bwaves_r/603.bwaves_s
48  * 507.cactuBSSN_r
49  * 521.wrf_r/621.wrf_s
50  * 527.cam4_r/627.cam4_s
51  * 628.pop2_s
52  * 548.exchange2_r/648.exchange2_s
53  * 549.fotonik3d_r/649.fotonik3d_s
54  * 554.roms_r/654.roms_s
56 SPEC OMP2012
57 ------------
58 https://www.spec.org/omp2012/
60  * 350.md
61  * 351.bwaves
62  * 352.nab
63  * 357.bt331
64  * 358.botsalgn
65  * 359.botsspar
66  * 360.ilbdc
67  * 362.fma3d
68  * 363.swim
69  * 367.imagick
70  * 370.mgrid331
71  * 371.applu331
72  * 372.smithwa
73  * 376.kdtree
75 OpenCV
76 ------
77 https://opencv.org/
79 OpenMP 4.x SIMD Benchmarks
80 --------------------------
81 https://github.com/flwende/simd_benchmarks
83 PWM-benchmarking
84 ----------------
85 https://github.com/tbepler/PWM-benchmarking
87 SLAMBench
88 ---------
89 https://github.com/pamela-project/slambench
91 FireHose
92 --------
93 http://firehose.sandia.gov/
95 A Benchmark for the C/C++ Standard Library
96 ------------------------------------------
97 https://github.com/hiraditya/std-benchmark
99 OpenBenchmarking.org CPU / Processor Suite
100 ------------------------------------------
101 https://openbenchmarking.org/suite/pts/cpu
103 This is a subset of the
104 `Phoronix Test Suite <https://github.com/phoronix-test-suite/phoronix-test-suite/>`_
105 and is itself a collection of benchmark suites
107 Parboil Benchmarks
108 ------------------
109 http://impact.crhc.illinois.edu/parboil/parboil.aspx
111 MachSuite
112 ---------
113 https://breagen.github.io/MachSuite/
115 Rodinia
116 -------
117 http://lava.cs.virginia.edu/Rodinia/download_links.htm
119 Rodinia has already been partially included in
120 MultiSource/Benchmarks/Rodinia. Benchmarks still missing are:
122  * streamcluster
123  * particlefilter
124  * nw
125  * nn
126  * myocyte
127  * mummergpu
128  * lud
129  * leukocyte
130  * lavaMD
131  * kmeans
132  * hotspot3D
133  * heartwall
134  * cfd
135  * bfs
136  * b+tree
138 vecmathlib tests harness
139 ------------------------
140 https://bitbucket.org/eschnett/vecmathlib/wiki/Home
142 PARSEC
143 ------
144 http://parsec.cs.princeton.edu/
146 Graph500 reference implementations
147 ----------------------------------
148 https://github.com/graph500/graph500/tree/v2-spec
150 NAS Parallel Benchmarks
151 -----------------------
152 https://www.nas.nasa.gov/publications/npb.html
154 The official benchmark is written in Fortran, but an unofficial
155 C-translation is available as well:
156 https://github.com/benchmark-subsetting/NPB3.0-omp-C
158 DARPA HPCS SSCA#2 C/OpenMP reference implementation
159 ---------------------------------------------------
160 http://www.highproductivity.org/SSCABmks.htm
162 This web site does not exist any more, but there seems to be a copy of
163 some of the benchmarks
164 https://github.com/gtcasl/hpc-benchmarks/tree/master/SSCA2v2.2
166 Kokkos
167 ------
168 https://github.com/kokkos/kokkos-kernels/tree/master/perf_test
169 https://github.com/kokkos/kokkos/tree/master/benchmarks
171 PolyMage
172 --------
173 https://github.com/bondhugula/polymage-benchmarks
175 PolyBench
176 ---------
177 https://sourceforge.net/projects/polybench/
179 A modified version of Polybench 3.2 is already presented in
180 SingleSource/Benchmarks/Polybench. A newer version 4.2.1 is available.
182 High Performance Geometric Multigrid
183 ------------------------------------
184 https://crd.lbl.gov/departments/computer-science/PAR/research/hpgmg/
186 RAJA Performance Suite
187 ----------------------
188 https://github.com/LLNL/RAJAPerf
190 CORAL-2 Benchmarks
191 ------------------
192 https://asc.llnl.gov/coral-2-benchmarks/
194 Many of its programs have already been integreated in
195 MultiSource/Benchmarks/DOE-ProxyApps-C and
196 MultiSource/Benchmarks/DOE-ProxyApps-C++.
198  * Nekbone
199  * QMCPack
200  * LAMMPS
201  * Kripke
202  * Quicksilver
203  * PENNANT
204  * Big Data Analytic Suite
205  * Deep Learning Suite
206  * Stream
207  * Stride
208  * ML/DL micro-benchmark
209  * Pynamic
210  * ACME
211  * VPIC
212  * Laghos
213  * Parallel Integer Sort
214  * Havoq
216 NWChem
217 ------
218 http://www.nwchem-sw.org/index.php/Benchmarks
221 ----
222 https://github.com/dmlc/tvm/tree/master/apps/benchmark
224 HydroBench
225 ----------
226 https://github.com/HydroBench/Hydro
228 ParRes
229 ------
230 https://github.com/ParRes/Kernels/tree/master/Cxx11
232 Applications/Libraries
233 ======================
235 GnuPG
236 -----
237 https://gnupg.org/
239 Blitz++
240 -------
241 https://sourceforge.net/projects/blitz/
243 FFmpeg
244 ------
245 https://ffmpeg.org/
247 FreePOOMA
248 ---------
249 http://www.nongnu.org/freepooma/
251 FTensors
252 --------
253 http://www.wlandry.net/Projects/FTensor
255 rawspeed
256 --------
257 https://github.com/darktable-org/rawspeed
259 Its test dataset is 756 MB in size, which is too large to be included
260 into the test-suite repository.
262 C++ Performance Benchmarks
263 --------------------------
264 https://gitlab.com/chriscox/CppPerformanceBenchmarks
266 Generic Algorithms
267 ==================
269 Image processing
270 ----------------
272 Resampling
273 ``````````
275  * Bilinear
276  * Bicubic
277  * Lanczos
279 Dither
280 ``````
282  * Threshold
283  * Random
284  * Halftone
285  * Bayer
286  * Floyd-Steinberg
287  * Jarvis
288  * Stucki
289  * Burkes
290  * Sierra
291  * Atkinson
292  * Gradient-based
294 Feature detection
295 `````````````````
297  * Harris
298  * Histogram of Oriented Gradients
300 Color conversion
301 ````````````````
303  * RGB to grayscale
304  * HSL to RGB
306 Graph
307 -----
309 Search Algorithms
310 `````````````````
312  * Breadth-First-Search
313  * Depth-First-Search
314  * Dijkstra's algorithm
315  * A-Star
317 Spanning Tree
318 `````````````
320  * Kruskal's algorithm
321  * Prim's algorithm