測試套件擴展

摘要

這些是關於可以添加到 LLVM 測試套件中的其他程式、基準測試、應用程式和演算法的構想。 測試套件可以比現在大得多,這將有助於我們在開發過程中檢測編譯器錯誤(崩潰、編譯錯誤)。

很可能,以下程式尚未添加到測試套件中的原因是沒有人有時間這樣做。但也可能有其他問題,例如

  • 授權(仍然可以作為外部模組添加支援,

    例如 SPEC 基準測試)

  • 語言(特別是,目前還沒有官方的 LLVM 前端

    適用於 FORTRAN)

  • 平行性(目前,測試套件中的所有程式都使用

    只有一個執行緒)

基準測試

SPEC CPU 2017

https://www.spec.org/cpu2017/

以下內容尚未包含,因為它們包含 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

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 基準測試

https://github.com/flwende/simd_benchmarks

PWM 基準測試

https://github.com/tbepler/PWM-benchmarking

SLAMBench

https://github.com/pamela-project/slambench

FireHose

http://firehose.sandia.gov/

C/C++ 標準函式庫的基準測試

https://github.com/hiraditya/std-benchmark

OpenBenchmarking.org CPU / 處理器套件

https://openbenchmarking.org/suite/pts/cpu

這是 Phoronix 測試套件 的一個子集,它本身就是一個基準測試套件的集合

Parboil 基準測試

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 已經部分包含在 MultiSource/Benchmarks/Rodinia 中。仍然缺少的基準測試程式有:

  • streamcluster

  • particlefilter

  • nw

  • nn

  • myocyte

  • mummergpu

  • lud

  • leukocyte

  • lavaMD

  • kmeans

  • hotspot3D

  • heartwall

  • cfd

  • bfs

  • b+tree

vecmathlib 測試工具

https://bitbucket.org/eschnett/vecmathlib/wiki/Home

PARSEC

http://parsec.cs.princeton.edu/

Graph500 參考實作

https://github.com/graph500/graph500/tree/v2-spec

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

https://github.com/bondhugula/polymage-benchmarks

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 效能套件

https://github.com/LLNL/RAJAPerf

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

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

應用程式/函式庫

GnuPG

https://gnupg.org/

Blitz++

https://sourceforge.net/projects/blitz/

FFmpeg

https://ffmpeg.dev.org.tw/

FreePOOMA

http://www.nongnu.org/freepooma/

FTensors

http://www.wlandry.net/Projects/FTensor

rawspeed

https://github.com/darktable-org/rawspeed

其測試資料集大小為 756 MB,過大而無法包含在測試套件儲存庫中。

C++ 效能基準測試

https://gitlab.com/chriscox/CppPerformanceBenchmarks

泛型演算法

影像處理

重採樣

  • 雙線性

  • 雙立方

  • Lanczos

抖動

  • 臨界值

  • 隨機

  • 網點

  • 拜耳

  • Floyd-Steinberg

  • Jarvis

  • Stucki

  • Burkes

  • Sierra

  • Atkinson

  • 基於梯度

特徵偵測

  • Harris

  • 方向梯度直方圖

色彩轉換

  • RGB 轉灰階

  • HSL 轉 RGB

搜尋演算法

  • 廣度優先搜尋

  • 深度優先搜尋

  • 戴克斯特拉演算法

  • A 星演算法

生成樹

  • 克魯斯克爾演算法

  • 普林演算法