测试套件扩展¶
摘要¶
这些是关于可以添加到 LLVM 测试套件中的额外程序、基准测试、应用程序和算法的想法。测试套件可以比现在大得多,这将有助于我们在开发过程中检测编译器错误(崩溃、误编译)。
最有可能的是,以下程序尚未添加到测试套件的原因是,没有人找到时间来做这件事。但也可能存在其他问题,例如
- 许可(仍然可以作为外部模块添加支持,
例如 SPEC 基准测试)
- 语言(特别是,目前还没有官方的 LLVM 前端
用于 FORTRAN)
- 并行性(目前,测试套件中的所有程序都使用
仅一个线程)
基准测试¶
SPEC CPU 2017¶
以下内容尚未包含在内,因为它们包含 Fortran 代码。
在 cactuBSSN 的情况下,只有一小部分是 Fortran。主机的 Fortran 编译器可以用于这些部分。
请注意,CMake 的 Ninja 生成器在 Fortran 方面存在困难。有关详细信息,请参阅 CMake 文档。
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¶
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¶
OpenMP 4.x SIMD 基准测试¶
PWM 基准测试¶
SLAMBench¶
FireHose¶
C/C++ 标准库的基准测试¶
OpenBenchmarking.org CPU / 处理器套件¶
https://openbenchmarking.org/suite/pts/cpu
这是 Phoronix 测试套件 的一个子集,本身也是基准测试套件的集合
Parboil 基准测试¶
MachSuite¶
Rodinia¶
http://lava.cs.virginia.edu/Rodinia/download_links.htm
Rodinia 已经部分包含在 MultiSource/Benchmarks/Rodinia 中。仍然缺失的基准测试有
streamcluster
particlefilter
nw
nn
myocyte
mummergpu
lud
leukocyte
lavaMD
kmeans
hotspot3D
heartwall
cfd
bfs
b+tree
vecmathlib 测试工具¶
PARSEC¶
Graph500 参考实现¶
NAS 并行基准测试¶
https://www.nas.nasa.gov/publications/npb.html
官方基准测试是用 Fortran 编写的,但也有非官方的 C 翻译版本: https://github.com/benchmark-subsetting/NPB3.0-omp-C
DARPA HPCS SSCA#2 C/OpenMP 参考实现¶
http://www.highproductivity.org/SSCABmks.htm
此网站已不再存在,但似乎有一些基准测试的副本 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¶
PolyBench¶
https://sourceforge.net/projects/polybench/
Polybench 3.2 的修改版本已经出现在 SingleSource/Benchmarks/Polybench 中。更新的版本 4.2.1 可用。
高性能几何多重网格¶
https://crd.lbl.gov/departments/computer-science/PAR/research/hpgmg/
RAJA 性能套件¶
CORAL-2 基准测试¶
https://asc.llnl.gov/coral-2-benchmarks/
它的许多程序已经集成到 MultiSource/Benchmarks/DOE-ProxyApps-C 和 MultiSource/Benchmarks/DOE-ProxyApps-C++ 中。
Nekbone
QMCPack
LAMMPS
Kripke
Quicksilver
PENNANT
大数据分析套件
深度学习套件
Stream
Stride
ML/DL 微基准测试
Pynamic
ACME
VPIC
Laghos
并行整数排序
Havoq
NWChem¶
TVM¶
HydroBench¶
ParRes¶
应用程序/库¶
GnuPG¶
Blitz++¶
FFmpeg¶
FreePOOMA¶
FTensors¶
rawspeed¶
https://github.com/darktable-org/rawspeed
它的测试数据集大小为 756 MB,对于包含到测试套件存储库中来说太大了。
C++ 性能基准测试¶
通用算法¶
图像处理¶
重采样¶
双线性
双三次
Lanczos
抖动¶
阈值
随机
半色调
拜耳
Floyd-Steinberg
Jarvis
Stucki
Burkes
Sierra
Atkinson
基于梯度的
特征检测¶
Harris
方向梯度直方图
颜色转换¶
RGB 到灰度
HSL 到 RGB
图¶
搜索算法¶
广度优先搜索
深度优先搜索
Dijkstra 算法
A* 算法
生成树¶
Kruskal 算法
Prim 算法