[PATCH] D43319: [test-suite] Adding LCALS (Livermore Compiler Analysis Loop Suite) loop kernels to test suite.

Brian Homerding via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 14 14:44:06 PST 2018


homerdin created this revision.
homerdin added reviewers: MatzeB, hfinkel, rengolin.
Herald added a subscriber: mgorny.

These changes are dependent on the changes purposed in https://reviews.llvm.org/D43314 and https://reviews.llvm.org/D43316.

This adds parts of LCALS as google benchmarks to the test suite.  The loop suite is partitioned into 3 subsets based on their origins.

>From README-LCALS_instructions.txt:
LCALS (“Livermore Compiler Analysis Loop Suite”) is a collection of loop kernels based, in part, on historical “Livermore Loops” benchmarks (See the 1986 technical report: “The Livermore Fortran Kernels: A Computer Test of the Numerical Performance Range”, by Frank H. McMahon, UCRL-53745.).

- Subset A: Loops representative of those found in application codes. They are implemented in source files named runA<variant>Loops.cxx.
- Subset B: Basic loops that help to illustrate compiler optimization issues. They are implemented in source files named runB<variant>Loops.cxx
- Subset C: Loops extracted from "Livermore Loops coded in C" developed by Steve Langer, which were derived from the Fortran version by Frank McMahon.  They are implemented in source files runC<variant>Loops.cxx

Being added are google benchmark versions of the Raw and ForeachLambda variants in the 3 sizes.

- SubsetALambdaLoops: 18 tests (6 loops x 3 sizes)
- SubsetARawLoops: 18 tests (6 loops x 3 sizes)
- SubsetBLambdaLoops: 12 tests (4 loops x 3 sizes)
- SubsetBRawLoops: 12 tests (4 loops x 3 sizes)
- SubsetCLambdaLoops: 60 tests (20 loops x 3 sizes)
- SubsetCRawLoops: 60 tests (20 loops x 3 sizes)

When run on Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz (Haswell):

- SubsetA takes around 22 seconds (18 tests reported).
- SubsetB takes around 16 seconds (12 tests reported).
- SubsetC takes around 61 seconds (60 tests reported).

The machine being used should not affect the runtime of the tests by much as the benchmark library will adjust the number of iterations up or down.  There are several ways I can adjust the overall run time, but as this will be reporting multiple results from each executable I was unsure what the expectation would be.


https://reviews.llvm.org/D43319

Files:
  LICENSE.TXT
  MicroBenchmarks/CMakeLists.txt
  MicroBenchmarks/LCALS/CMakeLists.txt
  MicroBenchmarks/LCALS/LCALSParams.hxx
  MicroBenchmarks/LCALS/LCALSStats.cxx
  MicroBenchmarks/LCALS/LCALSStats.hxx
  MicroBenchmarks/LCALS/LCALSSuite.cxx
  MicroBenchmarks/LCALS/LCALSSuite.hxx
  MicroBenchmarks/LCALS/LCALSTraversalMethods.cxx
  MicroBenchmarks/LCALS/LCALSTraversalMethods.hxx
  MicroBenchmarks/LCALS/README-LCALS_instructions.txt
  MicroBenchmarks/LCALS/README-LCALS_license.txt
  MicroBenchmarks/LCALS/README-LCALS_llvm-test-suite.txt
  MicroBenchmarks/LCALS/SubsetALambdaLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetALambdaLoops/LambdaSubsetAbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetALambdaLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetARawLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetARawLoops/RawSubsetAbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetARawLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetBLambdaLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetBLambdaLoops/LambdaSubsetBbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetBLambdaLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetBRawLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetBRawLoops/RawSubsetBbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetBRawLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetCLambdaLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetCLambdaLoops/LambdaSubsetCbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetCLambdaLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetCRawLoops/CMakeLists.txt
  MicroBenchmarks/LCALS/SubsetCRawLoops/RawSubsetCbenchmarks.cxx
  MicroBenchmarks/LCALS/SubsetCRawLoops/lit.local.cfg
  MicroBenchmarks/LCALS/SubsetDataA.hxx
  MicroBenchmarks/LCALS/SubsetDataB.hxx
  MicroBenchmarks/LCALS/main.cxx
  MicroBenchmarks/LCALS/runReferenceLoops.cxx

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43319.134314.patch
Type: text/x-patch
Size: 315091 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180214/4e98422d/attachment-0001.bin>


More information about the llvm-commits mailing list