|
2 | 2 |
|
3 | 3 | ## Report for benchmark configuration <code>main</code> |
4 | 4 |
|
5 | | -* Run on OpenJDK 64-Bit Server VM (build 17.0.11+9) with Java process: |
| 5 | +* Run on OpenJDK 64-Bit Server VM (build 21.0.9+10-LTS) with Java process: |
6 | 6 |
|
7 | 7 | ``` |
8 | | -C:\Users\altavir\scoop\apps\gradle\current\.gradle\jdks\eclipse_adoptium-17-amd64-windows.2\bin\java.exe -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant |
| 8 | +C:\Users\altavir\.gradle\jdks\eclipse_adoptium-21-amd64-windows.2\bin\java.exe -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant |
9 | 9 | ``` |
10 | | -* JMH 1.21 was used in `thrpt` mode with 5 warmup iterations by 10 s and 5 measurement iterations by 10 s. |
| 10 | +* JMH 1.37 was used in `thrpt` mode with 5 warmup iterations by 10 s and 5 measurement iterations by 10 s. |
11 | 11 | ### [ArrayBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/ArrayBenchmark.kt) |
12 | 12 |
|
13 | 13 | | Benchmark | Score | |
14 | 14 | |:---------:|:-----:| |
15 | | -|`benchmarkArrayRead`|3.9E+06 ± 3.4E+05 ops/s| |
16 | | -|`benchmarkBufferRead`|4.0E+06 ± 3.2E+05 ops/s| |
17 | | -|`nativeBufferRead`|3.9E+06 ± 2.0E+05 ops/s| |
| 15 | +|`benchmarkArrayRead`|3.9E+06 ± 1.1E+06 ops/s| |
| 16 | +|`benchmarkBufferRead`|4.0E+06 ± 2.2E+05 ops/s| |
| 17 | +|`nativeBufferRead`|4.0E+06 ± 1.7E+05 ops/s| |
18 | 18 | ### [BigIntBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/BigIntBenchmark.kt) |
19 | 19 |
|
20 | 20 | | Benchmark | Score | |
21 | 21 | |:---------:|:-----:| |
22 | | -|`jvmAdd`|3.1E+07 ± 1.8E+07 ops/s| |
23 | | -|`jvmAddLarge`|4.5E+04 ± 5.5E+03 ops/s| |
24 | | -|`jvmMultiply`|3.6E+07 ± 1.7E+07 ops/s| |
25 | | -|`jvmMultiplyLarge`|1.9E+02 ± 95 ops/s| |
26 | | -|`jvmParsing10`|4.0E+06 ± 8.8E+05 ops/s| |
27 | | -|`jvmParsing16`|3.6E+06 ± 6.5E+05 ops/s| |
28 | | -|`jvmPower`|25 ± 1.4 ops/s| |
29 | | -|`jvmSmallAdd`|5.7E+07 ± 9.7E+05 ops/s| |
30 | | -|`kmAdd`|2.6E+07 ± 8.8E+05 ops/s| |
31 | | -|`kmAddLarge`|2.3E+04 ± 1.2E+03 ops/s| |
32 | | -|`kmMultiply`|3.8E+07 ± 5.5E+06 ops/s| |
33 | | -|`kmMultiplyLarge`|36 ± 3.8 ops/s| |
34 | | -|`kmParsing10`|2.5E+06 ± 1.4E+05 ops/s| |
35 | | -|`kmParsing16`|3.7E+06 ± 4.7E+05 ops/s| |
36 | | -|`kmPower`|6.6 ± 1.0 ops/s| |
37 | | -|`kmSmallAdd`|2.0E+07 ± 1.7E+06 ops/s| |
| 22 | +|`jvmAdd`|2.9E+07 ± 2.8E+06 ops/s| |
| 23 | +|`jvmAddLarge`|3.8E+04 ± 6.4E+03 ops/s| |
| 24 | +|`jvmMultiply`|5.3E+07 ± 6.1E+06 ops/s| |
| 25 | +|`jvmMultiplyLarge`|2.2E+02 ± 1.9 ops/s| |
| 26 | +|`jvmParsing10`|3.9E+06 ± 4.7E+05 ops/s| |
| 27 | +|`jvmParsing16`|3.1E+06 ± 4.6E+05 ops/s| |
| 28 | +|`jvmPower`|24 ± 1.7 ops/s| |
| 29 | +|`jvmSmallAdd`|4.7E+07 ± 4.6E+06 ops/s| |
| 30 | +|`kmAdd`|2.3E+07 ± 5.1E+06 ops/s| |
| 31 | +|`kmAddLarge`|2.6E+04 ± 3.0E+02 ops/s| |
| 32 | +|`kmMultiply`|3.7E+07 ± 2.9E+06 ops/s| |
| 33 | +|`kmMultiplyLarge`|34 ± 2.8 ops/s| |
| 34 | +|`kmParsing10`|2.5E+06 ± 1.5E+05 ops/s| |
| 35 | +|`kmParsing16`|4.0E+06 ± 2.4E+05 ops/s| |
| 36 | +|`kmPower`|6.5 ± 0.69 ops/s| |
| 37 | +|`kmSmallAdd`|1.6E+07 ± 8.0E+05 ops/s| |
38 | 38 | ### [BufferBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/BufferBenchmark.kt) |
39 | 39 |
|
40 | 40 | | Benchmark | Score | |
41 | 41 | |:---------:|:-----:| |
42 | | -|`bufferViewReadWrite`|6.0E+06 ± 7.4E+05 ops/s| |
43 | | -|`bufferViewReadWriteSpecialized`|7.6E+05 ± 1.1E+04 ops/s| |
44 | | -|`complexBufferReadWrite`|2.4E+06 ± 2.7E+05 ops/s| |
45 | | -|`doubleArrayReadWrite`|7.3E+06 ± 4.3E+05 ops/s| |
46 | | -|`doubleBufferReadWrite`|7.3E+06 ± 3.4E+05 ops/s| |
| 42 | +|`bufferViewReadWrite`|5.4E+06 ± 3.8E+05 ops/s| |
| 43 | +|`bufferViewReadWriteSpecialized`|5.0E+06 ± 1.2E+06 ops/s| |
| 44 | +|`complexBufferReadWrite`|2.2E+06 ± 5.7E+04 ops/s| |
| 45 | +|`doubleArrayReadWrite`|6.9E+06 ± 1.2E+06 ops/s| |
| 46 | +|`doubleBufferReadWrite`|6.6E+06 ± 1.1E+06 ops/s| |
47 | 47 | ### [DotBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/DotBenchmark.kt) |
48 | 48 |
|
49 | 49 | | Benchmark | Score | |
50 | 50 | |:---------:|:-----:| |
51 | | -|`bufferedDot`|1.3 ± 0.032 ops/s| |
52 | | -|`cmDot`|0.42 ± 0.20 ops/s| |
53 | | -|`cmDotWithConversion`|0.83 ± 0.12 ops/s| |
54 | | -|`ejmlDot`|2.6 ± 0.049 ops/s| |
55 | | -|`ejmlDotWithConversion`|2.5 ± 0.075 ops/s| |
56 | | -|`multikDot`|25 ± 0.52 ops/s| |
57 | | -|`ojalgoDot`|11 ± 1.3 ops/s| |
58 | | -|`parallelDot`|11 ± 0.17 ops/s| |
59 | | -|`tensorDot`|1.1 ± 0.028 ops/s| |
60 | | -|`tfDot`|4.7 ± 0.14 ops/s| |
| 51 | +|`bufferedDot`|1.2 ± 0.20 ops/s| |
| 52 | +|`cmDot`|0.36 ± 0.14 ops/s| |
| 53 | +|`cmDotWithConversion`|0.80 ± 0.092 ops/s| |
| 54 | +|`ejmlDot`|2.9 ± 0.61 ops/s| |
| 55 | +|`ejmlDotWithConversion`|2.7 ± 0.15 ops/s| |
| 56 | +|`multikDot`|23 ± 2.4 ops/s| |
| 57 | +|`ojalgoDot`|11 ± 0.79 ops/s| |
| 58 | +|`parallelDot`|9.4 ± 1.3 ops/s| |
| 59 | +|`tensorDot`|1.0 ± 0.15 ops/s| |
| 60 | +|`tfDot`|3.9 ± 0.90 ops/s| |
61 | 61 | ### [ExpressionsInterpretersBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/ExpressionsInterpretersBenchmark.kt) |
62 | 62 |
|
63 | 63 | | Benchmark | Score | |
64 | 64 | |:---------:|:-----:| |
65 | | -|`asmGenericExpression`|12 ± 0.099 ops/s| |
66 | | -|`asmPrimitiveExpression`|26 ± 0.57 ops/s| |
67 | | -|`asmPrimitiveExpressionArray`|74 ± 1.7 ops/s| |
68 | | -|`functionalExpression`|5.3 ± 0.015 ops/s| |
69 | | -|`justCalculate`|74 ± 0.85 ops/s| |
70 | | -|`mstExpression`|4.2 ± 0.10 ops/s| |
71 | | -|`rawExpression`|25 ± 0.74 ops/s| |
| 65 | +|`asmGenericExpression`|15 ± 1.8 ops/s| |
| 66 | +|`asmPrimitiveExpression`|27 ± 0.98 ops/s| |
| 67 | +|`asmPrimitiveExpressionArray`|78 ± 14 ops/s| |
| 68 | +|`functionalExpression`|4.4 ± 0.25 ops/s| |
| 69 | +|`justCalculate`|79 ± 5.4 ops/s| |
| 70 | +|`mstExpression`|4.2 ± 0.93 ops/s| |
| 71 | +|`rawExpression`|25 ± 5.0 ops/s| |
72 | 72 | ### [IntegrationBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/IntegrationBenchmark.kt) |
73 | 73 |
|
74 | 74 | | Benchmark | Score | |
75 | 75 | |:---------:|:-----:| |
76 | | -|`complexIntegration`|2.6E+03 ± 46 ops/s| |
77 | | -|`doubleIntegration`|2.8E+03 ± 1.1E+02 ops/s| |
| 76 | +|`complexIntegration`|2.2E+03 ± 3.0E+02 ops/s| |
| 77 | +|`doubleIntegration`|2.3E+03 ± 6.4E+02 ops/s| |
78 | 78 | ### [MatrixInverseBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/MatrixInverseBenchmark.kt) |
79 | 79 |
|
80 | 80 | | Benchmark | Score | |
81 | 81 | |:---------:|:-----:| |
82 | | -|`cmLUPInversion`|2.1E+03 ± 35 ops/s| |
83 | | -|`ejmlInverse`|1.2E+03 ± 27 ops/s| |
84 | | -|`kmathLupInversion`|4.0E+02 ± 52 ops/s| |
85 | | -|`kmathParallelLupInversion`|4.0E+02 ± 9.6 ops/s| |
86 | | -|`ojalgoInverse`|2.1E+03 ± 3.3E+02 ops/s| |
87 | | -### [MinStatisticBenchmark.kt](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/MinStatisticBenchmark.kt) |
| 82 | +|`cmLUPInversion`|2.0E+03 ± 1.1E+02 ops/s| |
| 83 | +|`ejmlInverse`|1.2E+03 ± 29 ops/s| |
| 84 | +|`kmathLupInversion`|3.9E+02 ± 92 ops/s| |
| 85 | +|`kmathParallelLupInversion`|55 ± 5.0 ops/s| |
| 86 | +|`ojalgoInverse`|1.7E+03 ± 35 ops/s| |
| 87 | +### [MinStatisticBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/MinStatisticBenchmark.kt) |
88 | 88 |
|
89 | 89 | | Benchmark | Score | |
90 | 90 | |:---------:|:-----:| |
91 | | -|`kotlinArrayMin`| 1875.7 ± 401.5 ops/s | |
92 | | -|`minBlocking`| 1357.9 ± 72.0 ops/s | |
93 | | - |
| 91 | +|`kotlinArrayMin`|1.6E+03 ± 3.0E+02 ops/s| |
| 92 | +|`minBlocking`|1.2E+03 ± 1.2E+02 ops/s| |
94 | 93 | ### [NDFieldBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/NDFieldBenchmark.kt) |
95 | 94 |
|
96 | 95 | | Benchmark | Score | |
97 | 96 | |:---------:|:-----:| |
98 | | -|`boxingFieldAdd`|1.7 ± 0.11 ops/s| |
99 | | -|`multikAdd`|7.0 ± 0.41 ops/s| |
100 | | -|`multikInPlaceAdd`|34 ± 1.7 ops/s| |
101 | | -|`specializedFieldAdd`|7.2 ± 1.2 ops/s| |
102 | | -|`tensorAdd`|7.2 ± 1.6 ops/s| |
103 | | -|`tensorInPlaceAdd`|7.4 ± 4.9 ops/s| |
104 | | -|`viktorAdd`|5.8 ± 0.65 ops/s| |
| 97 | +|`boxingFieldAdd`|1.9 ± 0.089 ops/s| |
| 98 | +|`multikAdd`|6.8 ± 1.0 ops/s| |
| 99 | +|`multikInPlaceAdd`|32 ± 4.7 ops/s| |
| 100 | +|`specializedFieldAdd`|6.7 ± 0.98 ops/s| |
| 101 | +|`tensorAdd`|7.9 ± 1.1 ops/s| |
| 102 | +|`tensorInPlaceAdd`|11 ± 3.4 ops/s| |
| 103 | +|`viktorAdd`|6.4 ± 0.41 ops/s| |
105 | 104 | ### [ViktorBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/ViktorBenchmark.kt) |
106 | 105 |
|
107 | 106 | | Benchmark | Score | |
108 | 107 | |:---------:|:-----:| |
109 | | -|`doubleFieldAddition`|7.1 ± 2.0 ops/s| |
110 | | -|`rawViktor`|6.2 ± 1.0 ops/s| |
111 | | -|`viktorFieldAddition`|6.4 ± 0.29 ops/s| |
| 108 | +|`doubleFieldAddition`|7.3 ± 1.1 ops/s| |
| 109 | +|`rawViktor`|6.0 ± 0.88 ops/s| |
| 110 | +|`viktorFieldAddition`|6.7 ± 0.47 ops/s| |
112 | 111 | ### [ViktorLogBenchmark](src/jvmMain/kotlin/space/kscience/kmath/benchmarks/ViktorLogBenchmark.kt) |
113 | 112 |
|
114 | 113 | | Benchmark | Score | |
115 | 114 | |:---------:|:-----:| |
116 | | -|`rawViktorLog`|1.3 ± 0.016 ops/s| |
117 | | -|`realFieldLog`|1.3 ± 0.019 ops/s| |
118 | | -|`viktorFieldLog`|1.3 ± 0.020 ops/s| |
| 115 | +|`rawViktorLog`|1.3 ± 0.40 ops/s| |
| 116 | +|`realFieldLog`|1.2 ± 0.34 ops/s| |
| 117 | +|`viktorFieldLog`|1.3 ± 0.0073 ops/s| |
119 | 118 |
|
120 | 119 |
|
121 | 120 |
|
0 commit comments