forked from kscience/kmath
Improved stability for benchmarks and merge from dev
This commit is contained in:
commit
8967691b7d
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -119,6 +119,8 @@ kotlin {
|
|||||||
"-Wl,-rpath=$cppBuildDir",
|
"-Wl,-rpath=$cppBuildDir",
|
||||||
"-lctorch"
|
"-lctorch"
|
||||||
)
|
)
|
||||||
|
optimized = true
|
||||||
|
debuggable = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import kotlin.time.measureTime
|
|||||||
|
|
||||||
internal fun benchmarkingDoubleMatrixMultiplication(
|
internal fun benchmarkingDoubleMatrixMultiplication(
|
||||||
scale: Int,
|
scale: Int,
|
||||||
|
numWarmUp: Int,
|
||||||
numIter: Int,
|
numIter: Int,
|
||||||
device: TorchDevice = TorchDevice.TorchCPU
|
device: TorchDevice = TorchDevice.TorchCPU
|
||||||
): Unit {
|
): Unit {
|
||||||
@ -13,20 +14,21 @@ internal fun benchmarkingDoubleMatrixMultiplication(
|
|||||||
setSeed(SEED)
|
setSeed(SEED)
|
||||||
val lhs = randNormal(shape = intArrayOf(scale, scale), device = device)
|
val lhs = randNormal(shape = intArrayOf(scale, scale), device = device)
|
||||||
val rhs = randNormal(shape = intArrayOf(scale, scale), device = device)
|
val rhs = randNormal(shape = intArrayOf(scale, scale), device = device)
|
||||||
lhs dotAssign rhs
|
repeat(numWarmUp) { lhs dotAssign rhs }
|
||||||
val measuredTime = measureTime { repeat(numIter) { lhs dotAssign rhs } }
|
val measuredTime = measureTime { repeat(numIter) { lhs dotAssign rhs } }
|
||||||
println(" ${measuredTime / numIter} p.o. with $numIter iterations")
|
println(" ${measuredTime / numIter} p.o. with $numIter iterations")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class BenchmarksDouble {
|
class BenchmarkMatrixMultiplicationDouble {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun benchmarkMatrixMultiplication20() = benchmarkingDoubleMatrixMultiplication(20, 100000)
|
fun benchmarkMatrixMultiplication20() = benchmarkingDoubleMatrixMultiplication(20, 10, 100000)
|
||||||
@Test
|
|
||||||
fun benchmarkMatrixMultiplication200() = benchmarkingDoubleMatrixMultiplication(200, 10000)
|
|
||||||
@Test
|
|
||||||
fun benchmarkMatrixMultiplication2000() = benchmarkingDoubleMatrixMultiplication(2000, 10)
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun benchmarkMatrixMultiplication200() = benchmarkingDoubleMatrixMultiplication(200, 10, 10000)
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun benchmarkMatrixMultiplication2000() = benchmarkingDoubleMatrixMultiplication(2000, 3, 20)
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user