add: kotlin math benchmarks

This commit is contained in:
therealansh 2021-06-12 10:00:36 +05:30
parent b99d0b96d8
commit 03be37bb4f
2 changed files with 48 additions and 28 deletions

View File

@ -13,6 +13,9 @@ import space.kscience.kmath.jafama.JafamaDoubleField
import space.kscience.kmath.jafama.StrictJafamaDoubleField import space.kscience.kmath.jafama.StrictJafamaDoubleField
import space.kscience.kmath.operations.DoubleField import space.kscience.kmath.operations.DoubleField
import space.kscience.kmath.operations.invoke import space.kscience.kmath.operations.invoke
import kotlin.math.cos
import kotlin.math.exp
import kotlin.math.pow
@State(Scope.Benchmark) @State(Scope.Benchmark)
@ -26,6 +29,9 @@ internal class JafamaBenchmark {
@Benchmark @Benchmark
fun strictJafamaBench(blackhole: Blackhole) = invokeBenchmarks(strictJafama,blackhole) fun strictJafamaBench(blackhole: Blackhole) = invokeBenchmarks(strictJafama,blackhole)
@Benchmark
fun kotlinMathBench(blackhole: Blackhole) = invokeBenchmarks(kotlinMath, blackhole)
private fun invokeBenchmarks(expr: Double, blackhole: Blackhole) { private fun invokeBenchmarks(expr: Double, blackhole: Blackhole) {
blackhole.consume(expr) blackhole.consume(expr)
} }
@ -37,6 +43,8 @@ internal class JafamaBenchmark {
x * power(x, 1_000_000) * exp(x) / cos(x) x * power(x, 1_000_000) * exp(x) / cos(x)
} }
private val kotlinMath = x * x.pow(1_000_000) * exp(x) / cos(x)
private val core = DoubleField { private val core = DoubleField {
x * power(x, 1_000_000) * exp(x) / cos(x) x * power(x, 1_000_000) * exp(x) / cos(x)
} }

View File

@ -28,41 +28,53 @@ Comparing Operations on DoubleField and JafamaDoubleField
```bash ```bash
jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.coreBench jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.coreBench
Warm-up 1: 242556635.528 ops/s Warm-up 1: 384414358.081 ops/s
Iteration 1: 236249893.335 ops/s Iteration 1: 374827571.951 ops/s
Iteration 2: 294526940.968 ops/s Iteration 2: 479335182.332 ops/s
Iteration 3: 295973752.533 ops/s Iteration 3: 475483069.577 ops/s
Iteration 4: 296467676.763 ops/s Iteration 4: 478235949.414 ops/s
Iteration 5: 295929441.421 ops/s Iteration 5: 472256385.114 ops/s
283829541.004 ±(99.9%) 102456604.440 ops/s [Average] 456027631.678 ±(99.9%) 175106815.384 ops/s [Average]
(min, avg, max) = (236249893.335, 283829541.004, 296467676.763), stdev = 26607654.808 (min, avg, max) = (374827571.951, 456027631.678, 479335182.332), stdev = 45474683.880
CI (99.9%): [181372936.564, 386286145.444] (assumes normal distribution) CI (99.9%): [280920816.294, 631134447.061] (assumes normal distribution)
jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.jafamaBench jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.jafamaBench
Warm-up 1: 234737640.196 ops/s Warm-up 1: 359418665.041 ops/s
Iteration 1: 231689614.905 ops/s Iteration 1: 335704885.798 ops/s
Iteration 2: 296629612.909 ops/s Iteration 2: 427684801.542 ops/s
Iteration 3: 297456237.453 ops/s Iteration 3: 452193034.265 ops/s
Iteration 4: 296754794.513 ops/s Iteration 4: 433855064.931 ops/s
Iteration 5: 293722557.848 ops/s Iteration 5: 453863386.566 ops/s
283250563.526 ±(99.9%) 111125582.233 ops/s [Average] 420660234.620 ±(99.9%) 188028426.875 ops/s [Average]
(min, avg, max) = (231689614.905, 283250563.526, 297456237.453), stdev = 28858960.811 (min, avg, max) = (335704885.798, 420660234.620, 453863386.566), stdev = 48830385.349
CI (99.9%): [172124981.293, 394376145.759] (assumes normal distribution) CI (99.9%): [232631807.746, 608688661.495] (assumes normal distribution)
jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.kotlinMathBench
Warm-up 1: 371570418.113 ops/s
Iteration 1: 379281146.127 ops/s
Iteration 2: 465234403.109 ops/s
Iteration 3: 470621634.240 ops/s
Iteration 4: 467074553.006 ops/s
Iteration 5: 466424840.144 ops/s
449727315.325 ±(99.9%) 151837475.500 ops/s [Average]
(min, avg, max) = (379281146.127, 449727315.325, 470621634.240), stdev = 39431710.207
CI (99.9%): [297889839.825, 601564790.825] (assumes normal distribution)
jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.strictJafamaBench jvm: space.kscience.kmath.benchmarks.JafamaBenchmark.strictJafamaBench
Warm-up 1: 234895701.589 ops/s Warm-up 1: 371241281.065 ops/s
Iteration 1: 236061284.195 ops/s Iteration 1: 374490259.387 ops/s
Iteration 2: 296894799.416 ops/s Iteration 2: 464995837.424 ops/s
Iteration 3: 286852020.677 ops/s Iteration 3: 469788706.385 ops/s
Iteration 4: 284021863.614 ops/s Iteration 4: 469528470.682 ops/s
Iteration 5: 284404358.656 ops/s Iteration 5: 456727921.978 ops/s
277646865.312 ±(99.9%) 91748868.927 ops/s [Average]
(min, avg, max) = (236061284.195, 277646865.312, 296894799.416), stdev = 23826889.899
CI (99.9%): [185897996.385, 369395734.239] (assumes normal distribution)
447106239.171 ±(99.9%) 157629035.980 ops/s [Average]
(min, avg, max) = (374490259.387, 447106239.171, 469788706.385), stdev = 40935760.071
CI (99.9%): [289477203.192, 604735275.151] (assumes normal distribution)
``` ```