テストスイート拡張

概要

これらは、LLVMテストスイートに追加できる可能性のある追加のプログラム、ベンチマーク、アプリケーション、およびアルゴリズムのアイデアです。テストスイートは現在よりもはるかに大きくすることができ、開発中のコンパイラエラー(クラッシュ、誤コンパイル)の検出に役立ちます。

おそらく、以下のプログラムがまだテストスイートに追加されていない理由は、誰もそれを行う時間を見つけられなかったためです。ただし、次のような他の問題もある可能性があります。

  • ライセンス(外部モジュールとしてサポートを追加することもできます。

    SPECベンチマークのように)

  • 言語(特に、公式のLLVMフロントエンドはありません

    FORTRAN用はまだ)

  • 並列処理(現在、テストスイートのすべてのプログラムは使用します

    1つのスレッドのみ)

ベンチマーク

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.org/

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

汎用アルゴリズム

画像処理

リサンプリング

  • バイリニア

  • バイキュービック

  • ランチョス

ディザリング

  • 閾値

  • ランダム

  • ハーフトーン

  • ベイヤー

  • フロイド-スタインバーグ

  • ジャービス

  • スタッキ

  • バークス

  • シエラ

  • アトキンソン

  • 勾配ベース

特徴検出

  • ハリス

  • 方向勾配のヒストグラム

色変換

  • RGBからグレースケールへ

  • HSLからRGBへ

グラフ

探索アルゴリズム

  • 幅優先探索

  • 深さ優先探索

  • ダイクストラのアルゴリズム

  • A*

スパニングツリー

  • クラスカルのアルゴリズム

  • プリムのアルゴリズム