Avatar for the jvdd user
jvdd
argminmax
BlogDocsChangelog

perf: tune scalar argmin & argmax

#43Merged
Comparing
argminmax_opt
(
98673f6
) with
main
(
a71aa98
)
CodSpeed Performance Gauge
+82%
Improvement
14
Untouched
142

Benchmarks

156 total
scalar_i8_argmax
benches/bench_i8.rs::benches::argminmax_i8_random_array_long
CodSpeed Performance Gauge
+82%
459.2 µs253 µs
scalar_u8_argmax
benches/bench_u8.rs::benches::argminmax_u8_random_array_long
CodSpeed Performance Gauge
+81%
459.3 µs253 µs
scalar_i16_argmax
benches/bench_i16.rs::benches::argminmax_i16_random_array_long
CodSpeed Performance Gauge
+63%
477.5 µs292.6 µs
scalar_u16_argmax
benches/bench_u16.rs::benches::argminmax_u16_random_array_long
CodSpeed Performance Gauge
+63%
477.5 µs292.6 µs
scalar_i32_argmax
benches/bench_i32.rs::benches::argminmax_i32_random_array_long
CodSpeed Performance Gauge
+52%
542.4 µs357.5 µs
scalar_u32_argmax
benches/bench_u32.rs::benches::argminmax_u32_random_array_long
CodSpeed Performance Gauge
+51%
570.8 µs378.8 µs
scalar_i64_argmax
benches/bench_i64.rs::benches::argminmax_i64_random_array_long
CodSpeed Performance Gauge
+34%
729 µs544.2 µs
scalar_u64_argmax
benches/bench_u64.rs::benches::argminmax_u64_random_array_long
CodSpeed Performance Gauge
+34%
757.5 µs565.5 µs
scalar_f32_argmax_rn
benches/bench_f32_return_nan.rs::benches::argminmax_rn_f32_random_array_long
CodSpeed Performance Gauge
+11%
585 µs528.1 µs
scalar_f64_argmax_rn
benches/bench_f64_return_nan.rs::benches::argminmax_rn_f64_random_array_long
CodSpeed Performance Gauge
+8%
771.7 µs714.8 µs
scalar_f32_argmin_in
benches/bench_f32_ignore_nan.rs::benches::argminmax_in_f32_random_array_long
CodSpeed Performance Gauge
+6%
471.4 µs442.9 µs
scalar_f32_argmax_in
benches/bench_f32_ignore_nan.rs::benches::argminmax_in_f32_random_array_long
CodSpeed Performance Gauge
+6%
471.3 µs442.8 µs
scalar_f64_argmin_in
benches/bench_f64_ignore_nan.rs::benches::argminmax_in_f64_random_array_long
CodSpeed Performance Gauge
+5%
658 µs629.5 µs
scalar_f64_argmax_in
benches/bench_f64_ignore_nan.rs::benches::argminmax_in_f64_random_array_long
CodSpeed Performance Gauge
+5%
658 µs629.5 µs
avx2_i16_argmax
benches/bench_i16.rs::benches::argminmax_i16_random_array_long
CodSpeed Performance Gauge
0%
106.7 µs106.6 µs
avx2_i8_argmax
benches/bench_i8.rs::benches::argminmax_i8_random_array_long
CodSpeed Performance Gauge
0%
62.5 µs62.4 µs
sse_i8_argmin
benches/bench_i8.rs::benches::argminmax_i8_random_array_long
CodSpeed Performance Gauge
0%
67.4 µs67.4 µs
sse_u8_argmin
benches/bench_u8.rs::benches::argminmax_u8_random_array_long
CodSpeed Performance Gauge
0%
68.7 µs68.7 µs
sse_i16_argmax
benches/bench_i16.rs::benches::argminmax_i16_random_array_long
CodSpeed Performance Gauge
0%
126.1 µs126 µs
sse_u16_argmax
benches/bench_u16.rs::benches::argminmax_u16_random_array_long
CodSpeed Performance Gauge
0%
131.5 µs131.5 µs
impl_f32_argmin_in
benches/bench_f32_ignore_nan.rs::benches::argminmax_in_f32_random_array_long
CodSpeed Performance Gauge
0%
225.2 µs225.2 µs
impl_f32_argminmax_in
benches/bench_f32_ignore_nan.rs::benches::argminmax_in_f32_random_array_long
CodSpeed Performance Gauge
0%
225.2 µs225.2 µs
impl_f32_argmax_in
benches/bench_f32_ignore_nan.rs::benches::argminmax_in_f32_random_array_long
CodSpeed Performance Gauge
0%
225.2 µs225.2 µs
avx2_f16_argmax_rn
benches/bench_f16_return_nan.rs::benches::argminmax_rn_f16_random_array_long
CodSpeed Performance Gauge
0%
119.4 µs119.4 µs
sse_i8_argminmax
benches/bench_i8.rs::benches::argminmax_i8_random_array_long
CodSpeed Performance Gauge
0%
85.2 µs85.2 µs

Commits

Click on a commit to change the comparison range
Base
main
a71aa98
+81.51%
perf: add explicit argmax scalar impl
67e82df
3 years ago
by jvdd
-96.83%
perf: add explicit argmin scalar impl
6c7fa6b
3 years ago
by jvdd
+96.83%
perf: revert scalar impl to double check
98673f6
3 years ago
by jvdd
© 2026 CodSpeed Technology
Home Terms Privacy Docs