diff options
| author | Schuyler Eldridge | 2020-06-25 16:10:25 -0400 |
|---|---|---|
| committer | GitHub | 2020-06-25 20:10:25 +0000 |
| commit | 87c5d034f2d32132eed01a6f43b567af9b34cbcd (patch) | |
| tree | e348b349e5da62fc76c3eb7dcbdfd256136e0262 /benchmark | |
| parent | 672e2a9a4e8876580d97269d0e3d218a7c5ce491 (diff) | |
Batch renames in LowerTypes (#1718)
* Batch renames in LowerTypes
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
* Add benchmarking for LowerTypes
Add infrastructure of benchmarking Transforms (in addition to
existing infra for Passes). Also run System.gc between each timed
benchmark to improve stability.
Co-authored-by: Jack Koenig <koenig@sifive.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Diffstat (limited to 'benchmark')
| -rw-r--r-- | benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala | 27 | ||||
| -rw-r--r-- | benchmark/src/main/scala/firrtl/benchmark/hot/util/package.scala | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala new file mode 100644 index 00000000..05b759c6 --- /dev/null +++ b/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala @@ -0,0 +1,27 @@ +// See LICENSE for license details. + +package firrtl +package benchmark +package hot + +import firrtl._ +import firrtl.passes.LowerTypes +import firrtl.stage.TransformManager + +import firrtl.benchmark.util._ + +abstract class TransformBenchmark(factory: () => Transform) extends App { + val inputFile = args(0) + val warmup = args(1).toInt + val runs = args(2).toInt + + val input = filenameToCircuit(inputFile) + val inputState = CircuitState(input, ChirrtlForm) + + val manager = new TransformManager(factory().prerequisites) + val preState = manager.execute(inputState) + + hot.util.benchmark(warmup, runs)(factory().transform(preState)) +} + +object LowerTypesBenchmark extends TransformBenchmark(() => LowerTypes) diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/util/package.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/util/package.scala index c05b8359..911bd03a 100644 --- a/benchmark/src/main/scala/firrtl/benchmark/hot/util/package.scala +++ b/benchmark/src/main/scala/firrtl/benchmark/hot/util/package.scala @@ -15,6 +15,7 @@ package object util { // Benchmark val times: Array[Double] = Array.fill(nRun)(0.0) for (i <- 0 until nRun) { + System.gc val (t, res) = time(f) times(i) = t println(f"Benchmark run $i took $t%.1f ms") |
