测试套件扩展¶
摘要¶
这些是关于可以添加到 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++ 性能基准测试¶
通用算法¶
图像处理¶
重采样¶
双线性
双三次
兰索斯
抖动¶
阈值
随机
半色调
拜耳
Floyd-Steinberg
Jarvis
Stucki
Burkes
Sierra
Atkinson
基于梯度的
特征检测¶
Harris
方向梯度直方图
颜色转换¶
RGB 转灰度
HSL 转 RGB
图形¶
搜索算法¶
广度优先搜索
深度优先搜索
迪杰斯特拉算法
A* 搜索算法
生成树¶
克鲁斯卡尔算法
普里姆算法