svd benchmarks added

This commit is contained in:
margarita0303 2022-07-13 18:34:26 +03:00
parent 874da80446
commit 07ed9980fc
2 changed files with 39 additions and 0 deletions

View File

@ -84,6 +84,11 @@ benchmark {
iterationTimeUnit = "ms" iterationTimeUnit = "ms"
} }
configurations.register("svd") {
commonConfiguration()
include("svdBenchmark")
}
configurations.register("buffer") { configurations.register("buffer") {
commonConfiguration() commonConfiguration()
include("BufferBenchmark") include("BufferBenchmark")

View File

@ -0,0 +1,34 @@
/*
* Copyright 2018-2021 KMath contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package space.kscience.kmath.benchmarks
import kotlinx.benchmark.Benchmark
import kotlinx.benchmark.Blackhole
import kotlinx.benchmark.Scope
import kotlinx.benchmark.State
import space.kscience.kmath.tensors.core.BroadcastDoubleTensorAlgebra.svdGolabKahan
import space.kscience.kmath.tensors.core.DoubleTensorAlgebra
import space.kscience.kmath.tensors.core.DoubleTensorAlgebra.Companion.svd
@State(Scope.Benchmark)
class SVDBenchmark {
companion object {
val tensor = DoubleTensorAlgebra.randomNormal(intArrayOf(10, 10, 10), 0)
}
@Benchmark
fun svdPowerMethod(blackhole: Blackhole) {
blackhole.consume(
tensor.svd()
)
}
@Benchmark
fun svdGolabKahan(blackhole: Blackhole) {
blackhole.consume(
tensor.svdGolabKahan()
)
}
}