Benchmarks¶
Representative single-machine numbers for v0.37.3, committed by hand — not from CI (shared runners aren't hardware-representative).
Two builds are shown so you can see the from-source upside:
- portable —
-O3 -march=x86-64-v2 -ffast-math— the shipped PyPI wheel. - native —
-O3 -march=native -mprefer-vector-width=256 -ffast-math—-DDOPPLER_NATIVE=ON, built from source for this CPU.
Environment — measured 2026-07-25 00:24:31 UTC, doppler 185d9ffb, cc (GCC) 16.1.1 20260625.
- CPU: AMD Ryzen AI 9 465 w/ Radeon 880M — 20 threads, governor
performance, boost on - OS: 7.1.4-1-cachyos, glibc 2.43
- Libs: Python 3.13.13, NumPy 2.4.5, CMake 4.4.0
Throughput is MSa/s (higher is better); latency ops are mean time/call (lower is better). from src = native vs portable.
The two builds are measured interleaved (alternating runs, per-benchmark best), so from src reflects the real build difference. Big gains are vectorizable kernels under AVX-512; overhead-bound benches (tiny per-call work) sit near 0% because the build can't help where Python-call overhead dominates.
Python (pytest-benchmark)¶
Throughput¶
| benchmark | portable throughput | native throughput | from src |
|---|---|---|---|
corr::bench_corr::test_bench_execute_64k |
389.41 GSa/s | 455.42 GSa/s | +17% |
i32_to_f32::bench_i32_to_f32::test_bench_steps_64k |
18.80 GSa/s | 31.14 GSa/s | +66% |
i16_to_f32::bench_i16_to_f32::test_bench_steps_64k |
17.94 GSa/s | 33.61 GSa/s | +87% |
wfm_synth::bench_wfm_synth::test_bench_steps_64k |
16.85 GSa/s | 19.37 GSa/s | +15% |
i8_to_f32::bench_i8_to_f32::test_bench_steps_64k |
14.05 GSa/s | 27.25 GSa/s | +94% |
i16u32_to_f32::bench_i16u32_to_f32::test_bench_steps_64k |
13.04 GSa/s | 26.85 GSa/s | +106% |
uq15_to_f32::bench_uq15_to_f32::test_bench_steps_64k |
12.04 GSa/s | 24.28 GSa/s | +102% |
i16u64_to_f32::bench_i16u64_to_f32::test_bench_steps_64k |
8.94 GSa/s | 15.47 GSa/s | +73% |
acc_f32::bench_acc_f32::test_bench_steps[409600] |
6.39 GSa/s | 23.90 GSa/s | +274% |
acc_f32::bench_acc_f32::test_bench_steps[819200] |
6.07 GSa/s | 24.06 GSa/s | +296% |
acc_f32::bench_acc_f32::test_bench_steps[20480] |
5.80 GSa/s | 23.04 GSa/s | +297% |
delay::bench_delay::test_bench_push_ptr_64k |
5.59 GSa/s | 5.85 GSa/s | +5% |
acc_q15::bench_acc_q15::test_bench_steps_64k |
4.74 GSa/s | 8.82 GSa/s | +86% |
acc_f32::bench_acc_f32::test_bench_steps[1024] |
4.69 GSa/s | 11.87 GSa/s | +153% |
buffer::bench_buffer::test_bench_f32_write |
4.09 GSa/s | 3.81 GSa/s | -7% |
acc_q8::bench_acc_q8::test_bench_steps_64k |
4.06 GSa/s | 3.84 GSa/s | -5% |
lo::bench_lo::test_bench_steps_64k |
3.48 GSa/s | 2.31 GSa/s | -34% |
nco::bench_nco::test_bench_steps_u32_64k |
3.44 GSa/s | 4.11 GSa/s | +19% |
buffer::bench_buffer::test_bench_f64_write |
3.32 GSa/s | 3.61 GSa/s | +9% |
nco::bench_nco::test_bench_steps_u32_ovf_64k |
2.82 GSa/s | 2.93 GSa/s | +4% |
acc_cf64::bench_acc_cf64::test_bench_steps[20480] |
1.58 GSa/s | 2.96 GSa/s | +87% |
acc_cf64::bench_acc_cf64::test_bench_steps[819200] |
1.55 GSa/s | 2.83 GSa/s | +83% |
acc_cf64::bench_acc_cf64::test_bench_steps[409600] |
1.50 GSa/s | 3.14 GSa/s | +110% |
acc_cf64::bench_acc_cf64::test_bench_steps[1024] |
1.45 GSa/s | 2.57 GSa/s | +77% |
lo::bench_lo::test_bench_steps_ctrl_64k |
1.14 GSa/s | 847.3 MSa/s | -26% |
adc::bench_adc::test_bench_steps_64k |
1.05 GSa/s | 2.39 GSa/s | +128% |
awgn::bench_awgn::test_bench_generate_64k |
695.9 MSa/s | 728.1 MSa/s | +5% |
RateConverter::bench_RateConverter::test_bench_cic_64k |
632.0 MSa/s | 613.4 MSa/s | -3% |
fft::bench_fft::test_bench_execute_cf32_8k |
587.4 MSa/s | 781.8 MSa/s | +33% |
cic::bench_cic::decimate_R256 |
570.1 MSa/s | 672.6 MSa/s | +18% |
cic::bench_cic::decimate_R64 |
564.0 MSa/s | 647.3 MSa/s | +15% |
compose::bench_compose::test_bench_reader[raw-cf32] |
530.5 MSa/s | 484.9 MSa/s | -9% |
cic::bench_cic::decimate_R8 |
530.5 MSa/s | 624.0 MSa/s | +18% |
cic::bench_cic::test_bench_decimate_64k |
514.8 MSa/s | 575.7 MSa/s | +12% |
cic::bench_cic::decimate_R32 |
496.9 MSa/s | 619.0 MSa/s | +25% |
compose::bench_compose::test_bench_reader[blue-cf32] |
480.7 MSa/s | 516.4 MSa/s | +7% |
cic::bench_cic::decimate_R4 |
479.7 MSa/s | 546.2 MSa/s | +14% |
compose::bench_compose::test_bench_writer[blue-cf32] |
477.9 MSa/s | 452.9 MSa/s | -5% |
compose::bench_compose::test_bench_reader[raw-ci16] |
473.0 MSa/s | 507.8 MSa/s | +7% |
f32_to_i16::bench_f32_to_i16::test_bench_steps_64k |
465.2 MSa/s | 459.9 MSa/s | -1% |
farrow::bench_farrow::test_bench_delay_64k |
465.0 MSa/s | 233.5 MSa/s | -50% |
compose::bench_compose::test_bench_writer[raw-cf32] |
462.8 MSa/s | 445.4 MSa/s | -4% |
f32_to_i16u32::bench_f32_to_i16u32::test_bench_steps_64k |
456.4 MSa/s | 440.0 MSa/s | -4% |
compose::bench_compose::test_bench_writer[raw-ci16] |
439.0 MSa/s | 526.5 MSa/s | +20% |
f32_to_i16u64::bench_f32_to_i16u64::test_bench_steps_64k |
435.8 MSa/s | 442.3 MSa/s | +1% |
fft2d::bench_fft2d::test_bench_execute_cf32 |
401.7 MSa/s | 438.1 MSa/s | +9% |
f32_to_uq15::bench_f32_to_uq15::test_bench_steps_64k |
399.0 MSa/s | 422.0 MSa/s | +6% |
costas::bench_costas::test_bench_steps_64k |
384.4 MSa/s | 341.8 MSa/s | -11% |
RateConverter::bench_RateConverter::test_bench_hb_64k |
381.2 MSa/s | 328.7 MSa/s | -14% |
HalfbandDecimator::bench_HalfbandDecimator::test_bench_execute_64k |
380.7 MSa/s | 339.4 MSa/s | -11% |
RateConverter::bench_RateConverter::test_bench_cic_resamp_64k |
355.3 MSa/s | 339.1 MSa/s | -5% |
resample::bench_resample::test_bench_hbdecim |
354.3 MSa/s | 311.9 MSa/s | -12% |
hbdecim_q15::bench_hbdecim_q15::test_bench_execute_64k |
310.4 MSa/s | 341.6 MSa/s | +10% |
RateConverter::bench_RateConverter::test_bench_hb2_64k |
260.0 MSa/s | 223.2 MSa/s | -14% |
corr2d::bench_corr2d::test_bench_corr2d_pffft_dwell8 |
259.9 MSa/s | 297.9 MSa/s | +15% |
ddcr::bench_ddcr::test_bench_execute_64k |
254.9 MSa/s | 227.4 MSa/s | -11% |
ddc::bench_ddc::test_bench_execute_64k |
242.1 MSa/s | 195.1 MSa/s | -19% |
fft2d::bench_fft2d::test_bench_execute_cf64 |
222.2 MSa/s | 309.1 MSa/s | +39% |
fft::bench_fft::test_bench_execute_cf64_8k |
220.5 MSa/s | 444.4 MSa/s | +102% |
symsync::bench_symsync::test_bench_steps_64k |
162.3 MSa/s | 159.6 MSa/s | -2% |
RateConverter::bench_RateConverter::test_bench_resamp_64k |
154.2 MSa/s | 162.6 MSa/s | +5% |
corr2d::bench_corr2d::test_bench_corr2d_pffft |
147.2 MSa/s | 167.4 MSa/s | +14% |
Resampler::bench_Resampler::test_bench_execute_decim_64k |
132.2 MSa/s | 140.2 MSa/s | +6% |
resample::bench_resample::test_bench_resample_down |
131.3 MSa/s | 127.3 MSa/s | -3% |
agc::bench_agc::test_bench_steps_64k |
129.6 MSa/s | 147.2 MSa/s | +14% |
carrier_nda::bench_carrier_nda::test_bench_steps_64k |
86.9 MSa/s | 93.8 MSa/s | +8% |
fir::bench_fir::test_bench_execute[409600] |
85.6 MSa/s | 269.1 MSa/s | +215% |
fir::bench_fir::test_bench_execute[20480] |
83.0 MSa/s | 257.5 MSa/s | +210% |
resample::bench_resample::test_bench_resample_up |
77.9 MSa/s | 98.6 MSa/s | +27% |
fir::bench_fir::test_bench_execute[1024] |
77.2 MSa/s | 256.9 MSa/s | +233% |
fir::bench_fir::test_bench_execute[819200] |
74.0 MSa/s | 261.4 MSa/s | +253% |
acq::bench_acq::test_bench_tile_test_grid |
68.5 MSa/s | 90.2 MSa/s | +32% |
acq::bench_acq::test_bench_tile_worked |
56.5 MSa/s | 81.5 MSa/s | +44% |
widedoppler::bench_widedoppler::test_bench_column_tile[gps_16x2046-16-2046-79] |
54.4 MSa/s | 76.8 MSa/s | +41% |
corr2d::bench_corr2d::test_bench_corr2d_fallback |
53.7 MSa/s | 66.0 MSa/s | +23% |
dll::bench_dll::test_bench_steps_64k |
42.1 MSa/s | 47.0 MSa/s | +12% |
despreader::bench_despreader::test_bench_steps_64k |
38.8 MSa/s | 42.5 MSa/s | +9% |
delay::bench_delay::test_bench_push |
38.0 MSa/s | 36.7 MSa/s | -3% |
widedoppler::bench_widedoppler::test_bench_column_tile[burst_5x4094-5-4094-49] |
31.7 MSa/s | 39.6 MSa/s | +25% |
compose::bench_compose::test_bench_writer[csv-cf32] |
5.5 MSa/s | 5.7 MSa/s | +3% |
widedoppler::bench_widedoppler::test_bench_2d_roll[gps_16x2046-16-2046-79] |
1.7 MSa/s | 2.3 MSa/s | +37% |
widedoppler::bench_widedoppler::test_bench_2d_roll[burst_5x4094-5-4094-49] |
1.7 MSa/s | 2.3 MSa/s | +37% |
Latency¶
| benchmark | portable time/call | native time/call | from src |
|---|---|---|---|
wfm_synth::bench_wfm_synth::test_bench_step |
24.26 ns | 26.32 ns | -8% |
i16u64_to_f32::bench_i16u64_to_f32::test_bench_step |
24.52 ns | 25.06 ns | -2% |
i16u32_to_f32::bench_i16u32_to_f32::test_bench_step |
26.26 ns | 27.00 ns | -3% |
uq15_to_f32::bench_uq15_to_f32::test_bench_step |
26.35 ns | 28.93 ns | -9% |
loop_filter::bench_loop_filter::test_bench_step |
26.54 ns | 30.18 ns | -12% |
lockdet::bench_lockdet::test_bench_step |
26.74 ns | 26.11 ns | +2% |
acc_q8::bench_acc_q8::test_bench_step |
26.98 ns | 26.62 ns | +1% |
i16_to_f32::bench_i16_to_f32::test_bench_step |
27.10 ns | 26.69 ns | +2% |
i8_to_f32::bench_i8_to_f32::test_bench_step |
27.35 ns | 27.01 ns | +1% |
acc_q15::bench_acc_q15::test_bench_step |
27.98 ns | 28.85 ns | -3% |
adc::bench_adc::test_bench_step |
28.49 ns | 30.45 ns | -6% |
i32_to_f32::bench_i32_to_f32::test_bench_step |
28.88 ns | 26.66 ns | +8% |
detection::bench_detection::test_bench_det_threshold_power |
29.68 ns | 30.89 ns | -4% |
boxcar::bench_boxcar::test_bench_step |
30.81 ns | 32.14 ns | -4% |
timing::bench_timing::test_bench_stamp |
32.05 ns | 34.38 ns | -7% |
f32_to_i16u64::bench_f32_to_i16u64::test_bench_step |
32.07 ns | 35.25 ns | -9% |
f32_to_i16::bench_f32_to_i16::test_bench_step |
32.20 ns | 31.82 ns | +1% |
f32_to_uq15::bench_f32_to_uq15::test_bench_step |
32.70 ns | 33.34 ns | -2% |
f32_to_i16u32::bench_f32_to_i16u32::test_bench_step |
33.16 ns | 31.44 ns | +5% |
detection::bench_detection::test_bench_det_threshold |
34.32 ns | 33.80 ns | +2% |
detection::bench_detection::test_bench_marcum_q_large_a |
37.08 ns | 35.73 ns | +4% |
agc::bench_agc::test_bench_step |
53.34 ns | 45.55 ns | +17% |
timing::bench_timing::test_bench_pace_nowait |
90.20 ns | 89.54 ns | +1% |
detection::bench_detection::test_bench_det_pd_m1 |
127.24 ns | 124.46 ns | +2% |
detection::bench_detection::test_bench_marcum_q_m4 |
196.98 ns | 186.39 ns | +6% |
detection::bench_detection::test_bench_marcum_q_m1 |
218.95 ns | 212.98 ns | +3% |
detection::bench_detection::test_bench_det_pd_m4 |
224.61 ns | 226.94 ns | -1% |
detection::bench_detection::test_bench_det_pd_power_m4 |
225.11 ns | 228.43 ns | -1% |
detection::bench_detection::test_bench_det_pd_m16 |
474.36 ns | 468.44 ns | +1% |
detection::bench_detection::test_bench_det_dwell |
27.93 µs | 28.19 µs | -1% |
detection::bench_detection::test_bench_det_dwell_power |
27.96 µs | 27.42 µs | +2% |
lockdet::bench_lockdet::test_bench_steps_64k |
28.42 µs | 33.52 µs | -15% |
detector::bench_detector::test_bench_push_64k |
30.51 µs | 26.41 µs | +16% |
detection::bench_detection::test_bench_det_snr_m4 |
33.80 µs | 33.77 µs | +0% |
detection::bench_detection::test_bench_det_snr_m16 |
33.93 µs | 35.33 µs | -4% |
detection::bench_detection::test_bench_det_snr_power_m4 |
34.29 µs | 34.56 µs | -1% |
detector2d::bench_detector2d::test_bench_push_64k |
59.78 µs | 66.91 µs | -11% |
wfm_reader::bench_wfm_reader::test_read_64k |
125.87 µs | 130.63 µs | -4% |
wfm_writer::bench_wfm_writer::test_write_64k[ci16] |
141.52 µs | 130.44 µs | +8% |
wfm_writer::bench_wfm_writer::test_write_64k[cf32] |
158.32 µs | 144.51 µs | +10% |
loop_filter::bench_loop_filter::test_bench_steps_64k |
167.36 µs | 179.39 µs | -7% |
boxcar::bench_boxcar::test_bench_steps_64k |
217.31 µs | 225.48 µs | -4% |
C (jm_bench)¶
Throughput¶
| benchmark | portable throughput | native throughput | from src |
|---|---|---|---|
i8_to_f32::steps |
14.33 GSa/s | 18.42 GSa/s | +29% |
i32_to_f32::steps |
12.61 GSa/s | 19.74 GSa/s | +57% |
i16_to_f32::steps |
12.07 GSa/s | 33.80 GSa/s | +180% |
uq15_to_f32::steps |
11.70 GSa/s | 32.34 GSa/s | +176% |
i16u32_to_f32::steps |
9.33 GSa/s | 17.68 GSa/s | +90% |
acc_f32::steps |
6.70 GSa/s | 26.59 GSa/s | +297% |
i16u64_to_f32::steps |
6.68 GSa/s | 12.16 GSa/s | +82% |
acc_q15::step |
5.03 GSa/s | 6.40 GSa/s | +27% |
acc_q15::steps |
5.02 GSa/s | 6.41 GSa/s | +28% |
i8_to_f32::step |
4.33 GSa/s | 3.29 GSa/s | -24% |
i16u32_to_f32::step |
4.22 GSa/s | 3.20 GSa/s | -24% |
acc_q8::steps |
4.17 GSa/s | 3.14 GSa/s | -25% |
i16_to_f32::step |
4.03 GSa/s | 3.40 GSa/s | -16% |
acc_q8::step |
3.73 GSa/s | 2.82 GSa/s | -24% |
i32_to_f32::step |
3.30 GSa/s | 3.30 GSa/s | +0% |
i16u64_to_f32::step |
3.29 GSa/s | 3.28 GSa/s | -0% |
uq15_to_f32::step |
2.96 GSa/s | 4.74 GSa/s | +60% |
lockdet::step |
2.56 GSa/s | 2.45 GSa/s | -4% |
lo::steps |
2.33 GSa/s | 2.03 GSa/s | -13% |
lockdet::steps |
1.92 GSa/s | 2.17 GSa/s | +13% |
lo::step |
1.70 GSa/s | 2.19 GSa/s | +29% |
acc_cf64::steps |
1.67 GSa/s | 2.68 GSa/s | +61% |
acc_cf64::step |
1.67 GSa/s | 1.17 GSa/s | -30% |
acc_f32::step |
1.61 GSa/s | 1.63 GSa/s | +1% |
acc_cf64::get |
1.26 GSa/s | 1.26 GSa/s | -0% |
acc_f32::madd2d |
1.26 GSa/s | 1.26 GSa/s | -0% |
acc_cf64::dump |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_f32::dump |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_cf64::madd2d |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_cf64::madd |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_f32::get |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_f32::madd |
1.26 GSa/s | 1.26 GSa/s | +0% |
acc_f32::add2d |
1.25 GSa/s | 1.26 GSa/s | +1% |
acc_cf64::add2d |
1.25 GSa/s | 1.26 GSa/s | +1% |
adc::step |
1.22 GSa/s | 1.14 GSa/s | -7% |
loop_filter::step |
1.13 GSa/s | 828.1 MSa/s | -27% |
adc::steps |
1.11 GSa/s | 2.60 GSa/s | +134% |
boxcar::step |
967.5 MSa/s | 1.20 GSa/s | +24% |
cic::decimate |
732.0 MSa/s | 650.1 MSa/s | -11% |
wfm_writer::raw ci8 (quantise) |
694.0 MSa/s | 696.5 MSa/s | +0% |
wfm_writer::raw ci16 (quantise) |
586.9 MSa/s | 692.4 MSa/s | +18% |
delay::write |
559.2 MSa/s | 1.01 GSa/s | +80% |
wfm_reader::raw cf32 (reinterpret) |
514.1 MSa/s | 421.9 MSa/s | -18% |
f32_to_i16::steps |
502.2 MSa/s | 457.3 MSa/s | -9% |
f32_to_i16u32::steps |
501.8 MSa/s | 456.7 MSa/s | -9% |
RateConverter::CIC(0.125) |
501.6 MSa/s | 473.4 MSa/s | -6% |
delay::push |
498.7 MSa/s | 961.1 MSa/s | +93% |
wfm_reader::raw ci16 (rescale) |
481.4 MSa/s | 415.0 MSa/s | -14% |
farrow::delay_cubic |
473.8 MSa/s | 255.9 MSa/s | -46% |
wfm_reader::blue cf32 (parse+raw) |
458.8 MSa/s | 437.4 MSa/s | -5% |
f32_to_uq15::steps |
457.3 MSa/s | 456.9 MSa/s | -0% |
f32_to_i16u64::steps |
456.1 MSa/s | 456.1 MSa/s | +0% |
f32_to_i16u32::step |
447.1 MSa/s | 380.9 MSa/s | -15% |
f32_to_i16u64::step |
419.1 MSa/s | 450.0 MSa/s | +7% |
loop_filter::steps |
418.0 MSa/s | 385.8 MSa/s | -8% |
f32_to_i16::step |
411.1 MSa/s | 448.4 MSa/s | +9% |
f32_to_uq15::step |
401.9 MSa/s | 454.0 MSa/s | +13% |
RateConverter::HB(0.5) |
392.5 MSa/s | 339.2 MSa/s | -14% |
farrow::delay_parabolic |
379.3 MSa/s | 265.8 MSa/s | -30% |
farrow::delay_linear |
377.4 MSa/s | 261.8 MSa/s | -31% |
costas::steps |
372.4 MSa/s | 326.0 MSa/s | -12% |
boxcar::steps |
327.5 MSa/s | 299.9 MSa/s | -8% |
RateConverter::CIC+Rs(0.1) |
318.8 MSa/s | 295.0 MSa/s | -7% |
wfm_writer::blue cf32 |
301.8 MSa/s | 290.8 MSa/s | -4% |
RateConverter::HB2(0.25) |
275.2 MSa/s | 192.1 MSa/s | -30% |
wfm_writer::raw cf32 (memcpy) |
241.8 MSa/s | 281.1 MSa/s | +16% |
lo::cexpf_baseline |
238.8 MSa/s | 269.3 MSa/s | +13% |
Resampler::reset |
208.6 MSa/s | 203.0 MSa/s | -3% |
RateConverter::Resamp(1/3) |
165.7 MSa/s | 159.7 MSa/s | -4% |
symsync::steps |
157.9 MSa/s | 171.7 MSa/s | +9% |
agc::steps |
134.7 MSa/s | 147.3 MSa/s | +9% |
dsss_receiver::search |
97.6 MSa/s | 56.4 MSa/s | -42% |
carrier_nda::steps |
95.2 MSa/s | 103.0 MSa/s | +8% |
carrier_nda::step |
84.0 MSa/s | 100.9 MSa/s | +20% |
RateConverter::Interp(2.0) |
82.7 MSa/s | 101.9 MSa/s | +23% |
corr2d::single_row_fast_path |
70.9 MSa/s | 81.9 MSa/s | +16% |
corr2d::multi_row_general_path |
60.5 MSa/s | 76.9 MSa/s | +27% |
acq::native_nc90 |
54.5 MSa/s | 38.9 MSa/s | -29% |
acq::native_nc176 |
49.8 MSa/s | 44.1 MSa/s | -11% |
acq::native_nc256 |
46.1 MSa/s | 41.1 MSa/s | -11% |
dll::steps |
43.4 MSa/s | 50.4 MSa/s | +16% |
despreader::steps |
37.7 MSa/s | 45.0 MSa/s | +19% |
dsss_receiver::track |
36.0 MSa/s | 38.0 MSa/s | +5% |
agc::step |
32.4 MSa/s | 42.8 MSa/s | +32% |
ppe::doppler |
16.2 MSa/s | 17.6 MSa/s | +8% |
wfm_reader::csv cf32 (text parse) |
6.0 MSa/s | 6.4 MSa/s | +6% |
wfm_writer::csv cf32 (text) |
5.8 MSa/s | 5.6 MSa/s | -3% |
acq::wideband_nc112 |
3.2 MSa/s | 4.4 MSa/s | +38% |
acq::wideband_nc256 |
3.2 MSa/s | 4.1 MSa/s | +31% |
acq::wideband_nc215 |
3.2 MSa/s | 4.7 MSa/s | +49% |
ppe::chirp |
0.5 MSa/s | 0.5 MSa/s | -3% |
Release history (portable build)¶
Portable-build throughput across releases — the wheel numbers. Comparable only across releases measured on the same machine.
Python (pytest-benchmark)¶
| benchmark | v0.10.1 | v0.12.0 | v0.16.1 | v0.21.0 | v0.35.0 | v0.37.3 |
|---|---|---|---|---|---|---|
corr::bench_corr::test_bench_execute_64k |
52.00 GSa/s | 47.73 GSa/s | 279.64 GSa/s | 314.77 GSa/s | 385.71 GSa/s | 389.41 GSa/s |
i32_to_f32::bench_i32_to_f32::test_bench_steps_64k |
18.89 GSa/s | 18.91 GSa/s | 18.88 GSa/s | 18.40 GSa/s | 18.86 GSa/s | 18.80 GSa/s |
i16_to_f32::bench_i16_to_f32::test_bench_steps_64k |
17.96 GSa/s | 17.97 GSa/s | 18.01 GSa/s | 18.01 GSa/s | 17.96 GSa/s | 17.94 GSa/s |
wfm_synth::bench_wfm_synth::test_bench_steps_64k |
— | 15.92 GSa/s | 15.86 GSa/s | 16.07 GSa/s | 15.79 GSa/s | 16.85 GSa/s |
i8_to_f32::bench_i8_to_f32::test_bench_steps_64k |
12.13 GSa/s | 13.06 GSa/s | 14.21 GSa/s | 13.98 GSa/s | 14.29 GSa/s | 14.05 GSa/s |
i16u32_to_f32::bench_i16u32_to_f32::test_bench_steps_64k |
13.08 GSa/s | 13.15 GSa/s | 13.17 GSa/s | 12.70 GSa/s | 13.13 GSa/s | 13.04 GSa/s |
uq15_to_f32::bench_uq15_to_f32::test_bench_steps_64k |
11.87 GSa/s | 12.87 GSa/s | 12.53 GSa/s | 12.85 GSa/s | 12.31 GSa/s | 12.04 GSa/s |
i16u64_to_f32::bench_i16u64_to_f32::test_bench_steps_64k |
9.47 GSa/s | 9.20 GSa/s | 9.65 GSa/s | 9.33 GSa/s | 9.80 GSa/s | 8.94 GSa/s |
acc_f32::bench_acc_f32::test_bench_steps[409600] |
6.25 GSa/s | 6.30 GSa/s | 6.67 GSa/s | 6.44 GSa/s | 5.89 GSa/s | 6.39 GSa/s |
acc_f32::bench_acc_f32::test_bench_steps[819200] |
6.11 GSa/s | 6.05 GSa/s | 6.46 GSa/s | 6.24 GSa/s | 6.36 GSa/s | 6.07 GSa/s |
acc_f32::bench_acc_f32::test_bench_steps[20480] |
6.29 GSa/s | 6.52 GSa/s | 6.46 GSa/s | 6.01 GSa/s | 5.76 GSa/s | 5.80 GSa/s |
delay::bench_delay::test_bench_push_ptr_64k |
5.72 GSa/s | 5.79 GSa/s | 6.00 GSa/s | 6.00 GSa/s | 5.62 GSa/s | 5.59 GSa/s |
acc_q15::bench_acc_q15::test_bench_steps_64k |
4.20 GSa/s | 4.59 GSa/s | 4.88 GSa/s | 4.94 GSa/s | 4.10 GSa/s | 4.74 GSa/s |
acc_f32::bench_acc_f32::test_bench_steps[1024] |
4.68 GSa/s | 5.00 GSa/s | 5.14 GSa/s | 5.04 GSa/s | 5.22 GSa/s | 4.69 GSa/s |
buffer::bench_buffer::test_bench_f32_write |
3.92 GSa/s | 4.24 GSa/s | 4.03 GSa/s | 4.36 GSa/s | 4.04 GSa/s | 4.09 GSa/s |
acc_q8::bench_acc_q8::test_bench_steps_64k |
4.05 GSa/s | 4.24 GSa/s | 4.14 GSa/s | 3.96 GSa/s | 4.14 GSa/s | 4.06 GSa/s |
lo::bench_lo::test_bench_steps_64k |
3.31 GSa/s | 3.61 GSa/s | 3.81 GSa/s | 3.75 GSa/s | 3.61 GSa/s | 3.48 GSa/s |
nco::bench_nco::test_bench_steps_u32_64k |
9.10 GSa/s | 9.99 GSa/s | 10.36 GSa/s | 9.05 GSa/s | 4.08 GSa/s | 3.44 GSa/s |
buffer::bench_buffer::test_bench_f64_write |
2.99 GSa/s | 3.55 GSa/s | 3.12 GSa/s | 3.32 GSa/s | 3.14 GSa/s | 3.32 GSa/s |
nco::bench_nco::test_bench_steps_u32_ovf_64k |
4.27 GSa/s | 4.25 GSa/s | 4.31 GSa/s | 4.08 GSa/s | 3.00 GSa/s | 2.82 GSa/s |
acc_cf64::bench_acc_cf64::test_bench_steps[20480] |
1.53 GSa/s | 1.50 GSa/s | 1.61 GSa/s | 1.58 GSa/s | 1.58 GSa/s | 1.58 GSa/s |
acc_cf64::bench_acc_cf64::test_bench_steps[819200] |
1.40 GSa/s | 1.50 GSa/s | 1.50 GSa/s | 1.47 GSa/s | 1.48 GSa/s | 1.55 GSa/s |
acc_cf64::bench_acc_cf64::test_bench_steps[409600] |
1.36 GSa/s | 1.61 GSa/s | 1.62 GSa/s | 1.61 GSa/s | 1.51 GSa/s | 1.50 GSa/s |
acc_cf64::bench_acc_cf64::test_bench_steps[1024] |
1.47 GSa/s | 1.46 GSa/s | 1.46 GSa/s | 1.46 GSa/s | 1.45 GSa/s | 1.45 GSa/s |
lo::bench_lo::test_bench_steps_ctrl_64k |
1.20 GSa/s | 1.20 GSa/s | 1.20 GSa/s | 1.10 GSa/s | 1.21 GSa/s | 1.14 GSa/s |
adc::bench_adc::test_bench_steps_64k |
963.9 MSa/s | 1.11 GSa/s | 1.08 GSa/s | 1.08 GSa/s | 1.10 GSa/s | 1.05 GSa/s |
awgn::bench_awgn::test_bench_generate_64k |
694.1 MSa/s | 718.6 MSa/s | 728.6 MSa/s | 728.8 MSa/s | 766.8 MSa/s | 695.9 MSa/s |
RateConverter::bench_RateConverter::test_bench_cic_64k |
601.3 MSa/s | 665.0 MSa/s | 648.4 MSa/s | 618.9 MSa/s | 633.9 MSa/s | 632.0 MSa/s |
fft::bench_fft::test_bench_execute_cf32_8k |
159.4 MSa/s | 77.9 MSa/s | 674.6 MSa/s | 648.8 MSa/s | 674.6 MSa/s | 587.4 MSa/s |
cic::bench_cic::decimate_R256 |
668.0 MSa/s | 728.9 MSa/s | 710.0 MSa/s | 681.4 MSa/s | 530.0 MSa/s | 570.1 MSa/s |
cic::bench_cic::decimate_R64 |
665.4 MSa/s | 686.0 MSa/s | 652.9 MSa/s | 648.4 MSa/s | 538.7 MSa/s | 564.0 MSa/s |
compose::bench_compose::test_bench_reader[raw-cf32] |
— | 1.70 GSa/s | 1.75 GSa/s | 2.04 GSa/s | 1.91 GSa/s | 530.5 MSa/s |
cic::bench_cic::decimate_R8 |
609.6 MSa/s | 663.8 MSa/s | 664.6 MSa/s | 627.0 MSa/s | 571.4 MSa/s | 530.5 MSa/s |
cic::bench_cic::test_bench_decimate_64k |
643.3 MSa/s | 624.5 MSa/s | 667.9 MSa/s | 697.2 MSa/s | 546.2 MSa/s | 514.8 MSa/s |
cic::bench_cic::decimate_R32 |
691.9 MSa/s | 709.3 MSa/s | 702.5 MSa/s | 698.6 MSa/s | 540.7 MSa/s | 496.9 MSa/s |
compose::bench_compose::test_bench_reader[blue-cf32] |
— | 1.48 GSa/s | 1.69 GSa/s | 1.86 GSa/s | 1.82 GSa/s | 480.7 MSa/s |
cic::bench_cic::decimate_R4 |
570.0 MSa/s | 597.7 MSa/s | 589.3 MSa/s | 595.7 MSa/s | 506.3 MSa/s | 479.7 MSa/s |
compose::bench_compose::test_bench_writer[blue-cf32] |
— | 541.5 MSa/s | 494.1 MSa/s | 441.9 MSa/s | 470.0 MSa/s | 477.9 MSa/s |
compose::bench_compose::test_bench_reader[raw-ci16] |
— | 922.5 MSa/s | 979.6 MSa/s | 1.04 GSa/s | 972.6 MSa/s | 473.0 MSa/s |
f32_to_i16::bench_f32_to_i16::test_bench_steps_64k |
419.9 MSa/s | 433.1 MSa/s | 444.0 MSa/s | 439.0 MSa/s | 465.5 MSa/s | 465.2 MSa/s |
farrow::bench_farrow::test_bench_delay_64k |
— | — | — | — | 426.3 MSa/s | 465.0 MSa/s |
compose::bench_compose::test_bench_writer[raw-cf32] |
— | 695.7 MSa/s | 621.1 MSa/s | 467.0 MSa/s | 435.7 MSa/s | 462.8 MSa/s |
f32_to_i16u32::bench_f32_to_i16u32::test_bench_steps_64k |
440.9 MSa/s | 457.3 MSa/s | 451.9 MSa/s | 457.1 MSa/s | 462.3 MSa/s | 456.4 MSa/s |
compose::bench_compose::test_bench_writer[raw-ci16] |
— | 531.8 MSa/s | 498.6 MSa/s | 440.6 MSa/s | 470.4 MSa/s | 439.0 MSa/s |
f32_to_i16u64::bench_f32_to_i16u64::test_bench_steps_64k |
414.3 MSa/s | 456.5 MSa/s | 456.9 MSa/s | 451.8 MSa/s | 410.4 MSa/s | 435.8 MSa/s |
fft2d::bench_fft2d::test_bench_execute_cf32 |
514.7 MSa/s | 524.0 MSa/s | 445.8 MSa/s | 445.4 MSa/s | 416.5 MSa/s | 401.7 MSa/s |
f32_to_uq15::bench_f32_to_uq15::test_bench_steps_64k |
445.3 MSa/s | 442.2 MSa/s | 439.2 MSa/s | 434.4 MSa/s | 406.7 MSa/s | 399.0 MSa/s |
costas::bench_costas::test_bench_steps_64k |
— | — | — | — | 345.7 MSa/s | 384.4 MSa/s |
RateConverter::bench_RateConverter::test_bench_hb_64k |
410.4 MSa/s | 365.6 MSa/s | 415.8 MSa/s | 390.3 MSa/s | 371.8 MSa/s | 381.2 MSa/s |
HalfbandDecimator::bench_HalfbandDecimator::test_bench_execute_64k |
389.9 MSa/s | 381.6 MSa/s | 407.3 MSa/s | 396.0 MSa/s | 387.2 MSa/s | 380.7 MSa/s |
RateConverter::bench_RateConverter::test_bench_cic_resamp_64k |
352.5 MSa/s | 356.6 MSa/s | 379.3 MSa/s | 350.8 MSa/s | 355.6 MSa/s | 355.3 MSa/s |
resample::bench_resample::test_bench_hbdecim |
344.5 MSa/s | 359.4 MSa/s | 361.3 MSa/s | 361.1 MSa/s | 377.3 MSa/s | 354.3 MSa/s |
hbdecim_q15::bench_hbdecim_q15::test_bench_execute_64k |
— | — | — | — | 304.0 MSa/s | 310.4 MSa/s |
RateConverter::bench_RateConverter::test_bench_hb2_64k |
257.8 MSa/s | 276.9 MSa/s | 268.3 MSa/s | 265.6 MSa/s | 270.4 MSa/s | 260.0 MSa/s |
corr2d::bench_corr2d::test_bench_corr2d_pffft_dwell8 |
— | — | — | — | 247.7 MSa/s | 259.9 MSa/s |
ddcr::bench_ddcr::test_bench_execute_64k |
251.6 MSa/s | 247.4 MSa/s | 258.6 MSa/s | 249.5 MSa/s | 248.2 MSa/s | 254.9 MSa/s |
ddc::bench_ddc::test_bench_execute_64k |
241.3 MSa/s | 228.5 MSa/s | 241.4 MSa/s | 231.7 MSa/s | 235.7 MSa/s | 242.1 MSa/s |
fft2d::bench_fft2d::test_bench_execute_cf64 |
286.4 MSa/s | 267.7 MSa/s | 242.4 MSa/s | 230.7 MSa/s | 227.6 MSa/s | 222.2 MSa/s |
fft::bench_fft::test_bench_execute_cf64_8k |
166.7 MSa/s | 179.0 MSa/s | 235.5 MSa/s | 233.3 MSa/s | 220.9 MSa/s | 220.5 MSa/s |
symsync::bench_symsync::test_bench_steps_64k |
— | — | — | — | 172.5 MSa/s | 162.3 MSa/s |
RateConverter::bench_RateConverter::test_bench_resamp_64k |
145.6 MSa/s | 160.7 MSa/s | 166.8 MSa/s | 166.0 MSa/s | 167.3 MSa/s | 154.2 MSa/s |
corr2d::bench_corr2d::test_bench_corr2d_pffft |
— | — | — | — | 150.1 MSa/s | 147.2 MSa/s |
Resampler::bench_Resampler::test_bench_execute_decim_64k |
129.9 MSa/s | 135.8 MSa/s | 132.5 MSa/s | 127.2 MSa/s | 132.7 MSa/s | 132.2 MSa/s |
resample::bench_resample::test_bench_resample_down |
133.1 MSa/s | 135.1 MSa/s | 136.0 MSa/s | 140.1 MSa/s | 130.9 MSa/s | 131.3 MSa/s |
agc::bench_agc::test_bench_steps_64k |
137.6 MSa/s | 136.1 MSa/s | 131.3 MSa/s | 133.9 MSa/s | 132.8 MSa/s | 129.6 MSa/s |
carrier_nda::bench_carrier_nda::test_bench_steps_64k |
— | — | — | — | 93.7 MSa/s | 86.9 MSa/s |
fir::bench_fir::test_bench_execute[409600] |
82.0 MSa/s | 80.8 MSa/s | 88.2 MSa/s | 83.4 MSa/s | 85.7 MSa/s | 85.6 MSa/s |
fir::bench_fir::test_bench_execute[20480] |
80.6 MSa/s | 85.0 MSa/s | 86.5 MSa/s | 83.4 MSa/s | 82.9 MSa/s | 83.0 MSa/s |
resample::bench_resample::test_bench_resample_up |
74.5 MSa/s | 79.6 MSa/s | 81.7 MSa/s | 80.8 MSa/s | 75.3 MSa/s | 77.9 MSa/s |
fir::bench_fir::test_bench_execute[1024] |
75.6 MSa/s | 82.6 MSa/s | 85.9 MSa/s | 82.1 MSa/s | 74.1 MSa/s | 77.2 MSa/s |
fir::bench_fir::test_bench_execute[819200] |
71.7 MSa/s | 73.3 MSa/s | 76.6 MSa/s | 81.7 MSa/s | 79.2 MSa/s | 74.0 MSa/s |
acq::bench_acq::test_bench_tile_test_grid |
— | — | — | — | 70.9 MSa/s | 68.5 MSa/s |
acq::bench_acq::test_bench_tile_worked |
— | — | — | — | 61.7 MSa/s | 56.5 MSa/s |
widedoppler::bench_widedoppler::test_bench_column_tile[gps_16x2046-16-2046-79] |
— | — | — | — | 59.1 MSa/s | 54.4 MSa/s |
corr2d::bench_corr2d::test_bench_corr2d_fallback |
— | — | — | — | 53.4 MSa/s | 53.7 MSa/s |
dll::bench_dll::test_bench_steps_64k |
— | — | — | — | 43.2 MSa/s | 42.1 MSa/s |
despreader::bench_despreader::test_bench_steps_64k |
— | — | — | — | 38.2 MSa/s | 38.8 MSa/s |
delay::bench_delay::test_bench_push |
39.7 MSa/s | 39.0 MSa/s | 38.8 MSa/s | 40.7 MSa/s | 33.8 MSa/s | 38.0 MSa/s |
widedoppler::bench_widedoppler::test_bench_column_tile[burst_5x4094-5-4094-49] |
— | — | — | — | 29.7 MSa/s | 31.7 MSa/s |
compose::bench_compose::test_bench_writer[csv-cf32] |
— | 6.1 MSa/s | 5.8 MSa/s | 5.9 MSa/s | 6.0 MSa/s | 5.5 MSa/s |
widedoppler::bench_widedoppler::test_bench_2d_roll[gps_16x2046-16-2046-79] |
— | — | — | — | 1.7 MSa/s | 1.7 MSa/s |
widedoppler::bench_widedoppler::test_bench_2d_roll[burst_5x4094-5-4094-49] |
— | — | — | — | 1.7 MSa/s | 1.7 MSa/s |
C (jm_bench)¶
| benchmark | v0.10.1 | v0.12.0 | v0.16.1 | v0.21.0 | v0.35.0 | v0.37.3 |
|---|---|---|---|---|---|---|
i8_to_f32::steps |
7.25 GSa/s | 14.21 GSa/s | 9.46 GSa/s | 14.38 GSa/s | 9.97 GSa/s | 14.33 GSa/s |
i32_to_f32::steps |
8.95 GSa/s | 12.42 GSa/s | 18.25 GSa/s | 18.97 GSa/s | 13.33 GSa/s | 12.61 GSa/s |
i16_to_f32::steps |
12.71 GSa/s | 17.68 GSa/s | 17.60 GSa/s | 18.11 GSa/s | 12.47 GSa/s | 12.07 GSa/s |
uq15_to_f32::steps |
12.56 GSa/s | 8.47 GSa/s | 12.99 GSa/s | 9.98 GSa/s | 9.07 GSa/s | 11.70 GSa/s |
i16u32_to_f32::steps |
9.29 GSa/s | 11.39 GSa/s | 8.75 GSa/s | 11.12 GSa/s | 9.25 GSa/s | 9.33 GSa/s |
acc_f32::steps |
6.70 GSa/s | 6.67 GSa/s | 6.70 GSa/s | 5.80 GSa/s | 6.70 GSa/s | 6.70 GSa/s |
i16u64_to_f32::steps |
6.91 GSa/s | 6.73 GSa/s | 6.64 GSa/s | 6.80 GSa/s | 4.75 GSa/s | 6.68 GSa/s |
acc_q15::step |
3.30 GSa/s | 3.31 GSa/s | 3.31 GSa/s | 3.30 GSa/s | 3.31 GSa/s | 5.03 GSa/s |
acc_q15::steps |
3.31 GSa/s | 3.30 GSa/s | 3.44 GSa/s | 5.03 GSa/s | 5.03 GSa/s | 5.02 GSa/s |
i8_to_f32::step |
2.45 GSa/s | 3.78 GSa/s | 3.26 GSa/s | 4.50 GSa/s | 2.50 GSa/s | 4.33 GSa/s |
i16u32_to_f32::step |
3.06 GSa/s | 3.21 GSa/s | 2.91 GSa/s | 3.22 GSa/s | 3.00 GSa/s | 4.22 GSa/s |
acc_q8::steps |
3.12 GSa/s | 2.82 GSa/s | 4.08 GSa/s | 4.28 GSa/s | 3.37 GSa/s | 4.17 GSa/s |
i16_to_f32::step |
3.15 GSa/s | 3.22 GSa/s | 3.49 GSa/s | 4.50 GSa/s | 2.50 GSa/s | 4.03 GSa/s |
acc_q8::step |
2.81 GSa/s | 2.80 GSa/s | 2.80 GSa/s | 2.82 GSa/s | 2.80 GSa/s | 3.73 GSa/s |
i32_to_f32::step |
2.36 GSa/s | 3.28 GSa/s | 3.62 GSa/s | 4.38 GSa/s | 3.02 GSa/s | 3.30 GSa/s |
i16u64_to_f32::step |
2.38 GSa/s | 3.27 GSa/s | 3.19 GSa/s | 3.30 GSa/s | 2.52 GSa/s | 3.29 GSa/s |
uq15_to_f32::step |
2.71 GSa/s | 2.56 GSa/s | 2.92 GSa/s | 2.76 GSa/s | 2.49 GSa/s | 2.96 GSa/s |
lockdet::step |
— | — | — | — | 2.06 GSa/s | 2.56 GSa/s |
lo::steps |
— | — | — | — | 1.81 GSa/s | 2.33 GSa/s |
lockdet::steps |
— | — | — | — | 1.15 GSa/s | 1.92 GSa/s |
lo::step |
— | — | — | — | 1.73 GSa/s | 1.70 GSa/s |
acc_cf64::steps |
1.57 GSa/s | 1.54 GSa/s | 1.67 GSa/s | 1.56 GSa/s | 1.68 GSa/s | 1.67 GSa/s |
acc_cf64::step |
1.38 GSa/s | 1.13 GSa/s | 1.26 GSa/s | 1.37 GSa/s | 1.38 GSa/s | 1.67 GSa/s |
acc_f32::step |
1.14 GSa/s | 1.14 GSa/s | 1.18 GSa/s | 1.14 GSa/s | 1.22 GSa/s | 1.61 GSa/s |
acc_cf64::get |
1.26 GSa/s | 1.26 GSa/s | 1.05 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_f32::madd2d |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_cf64::dump |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_f32::dump |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_cf64::madd2d |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_cf64::madd |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_f32::get |
1.23 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_f32::madd |
1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s | 1.26 GSa/s |
acc_f32::add2d |
1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s |
acc_cf64::add2d |
1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s | 1.25 GSa/s |
adc::step |
801.2 MSa/s | 875.4 MSa/s | 1.11 GSa/s | 893.4 MSa/s | 1.02 GSa/s | 1.22 GSa/s |
loop_filter::step |
— | — | — | — | 944.9 MSa/s | 1.13 GSa/s |
adc::steps |
1.06 GSa/s | 1.11 GSa/s | 1.11 GSa/s | 1.04 GSa/s | 827.8 MSa/s | 1.11 GSa/s |
boxcar::step |
— | — | — | — | 1.09 GSa/s | 967.5 MSa/s |
cic::decimate |
686.4 MSa/s | 591.0 MSa/s | 581.7 MSa/s | 655.8 MSa/s | 633.5 MSa/s | 732.0 MSa/s |
wfm_writer::raw ci8 (quantise) |
— | — | — | — | — | 694.0 MSa/s |
wfm_writer::raw ci16 (quantise) |
— | — | — | — | — | 586.9 MSa/s |
delay::write |
392.2 MSa/s | 559.3 MSa/s | 558.8 MSa/s | 559.5 MSa/s | 555.3 MSa/s | 559.2 MSa/s |
wfm_reader::raw cf32 (reinterpret) |
— | — | — | — | — | 514.1 MSa/s |
f32_to_i16::steps |
320.2 MSa/s | 457.4 MSa/s | 457.4 MSa/s | 457.2 MSa/s | 375.2 MSa/s | 502.2 MSa/s |
f32_to_i16u32::steps |
320.1 MSa/s | 456.3 MSa/s | 379.8 MSa/s | 457.2 MSa/s | 502.6 MSa/s | 501.8 MSa/s |
RateConverter::CIC(0.125) |
505.3 MSa/s | 505.4 MSa/s | 505.7 MSa/s | 505.2 MSa/s | 504.8 MSa/s | 501.6 MSa/s |
delay::push |
354.3 MSa/s | 444.7 MSa/s | 461.4 MSa/s | 502.9 MSa/s | 429.3 MSa/s | 498.7 MSa/s |
wfm_reader::raw ci16 (rescale) |
— | — | — | — | — | 481.4 MSa/s |
farrow::delay_cubic |
— | — | — | — | 408.4 MSa/s | 473.8 MSa/s |
wfm_reader::blue cf32 (parse+raw) |
— | — | — | — | — | 458.8 MSa/s |
f32_to_uq15::steps |
365.4 MSa/s | 456.4 MSa/s | 453.3 MSa/s | 457.5 MSa/s | 457.6 MSa/s | 457.3 MSa/s |
f32_to_i16u64::steps |
319.7 MSa/s | 375.8 MSa/s | 456.5 MSa/s | 443.8 MSa/s | 453.8 MSa/s | 456.1 MSa/s |
f32_to_i16u32::step |
288.9 MSa/s | 380.3 MSa/s | 397.8 MSa/s | 432.3 MSa/s | 331.8 MSa/s | 447.1 MSa/s |
f32_to_i16u64::step |
285.9 MSa/s | 374.3 MSa/s | 380.7 MSa/s | 389.2 MSa/s | 443.6 MSa/s | 419.1 MSa/s |
loop_filter::steps |
— | — | — | — | 274.7 MSa/s | 418.0 MSa/s |
f32_to_i16::step |
300.0 MSa/s | 410.0 MSa/s | 419.3 MSa/s | 422.4 MSa/s | 397.7 MSa/s | 411.1 MSa/s |
f32_to_uq15::step |
301.3 MSa/s | 403.6 MSa/s | 379.3 MSa/s | 391.3 MSa/s | 308.5 MSa/s | 401.9 MSa/s |
RateConverter::HB(0.5) |
381.8 MSa/s | 321.7 MSa/s | 290.2 MSa/s | 409.9 MSa/s | 359.9 MSa/s | 392.5 MSa/s |
farrow::delay_parabolic |
— | — | — | — | 329.2 MSa/s | 379.3 MSa/s |
farrow::delay_linear |
— | — | — | — | 335.3 MSa/s | 377.4 MSa/s |
costas::steps |
— | — | — | — | 383.2 MSa/s | 372.4 MSa/s |
boxcar::steps |
— | — | — | — | 334.7 MSa/s | 327.5 MSa/s |
RateConverter::CIC+Rs(0.1) |
320.6 MSa/s | 321.0 MSa/s | 320.8 MSa/s | 320.7 MSa/s | 320.2 MSa/s | 318.8 MSa/s |
wfm_writer::blue cf32 |
— | — | — | — | — | 301.8 MSa/s |
RateConverter::HB2(0.25) |
269.2 MSa/s | 272.3 MSa/s | 275.9 MSa/s | 271.9 MSa/s | 258.6 MSa/s | 275.2 MSa/s |
wfm_writer::raw cf32 (memcpy) |
— | — | — | — | — | 241.8 MSa/s |
lo::cexpf_baseline |
— | — | — | — | 183.5 MSa/s | 238.8 MSa/s |
Resampler::reset |
202.2 MSa/s | 229.3 MSa/s | 220.4 MSa/s | 240.6 MSa/s | 224.7 MSa/s | 208.6 MSa/s |
RateConverter::Resamp(1/3) |
167.9 MSa/s | 165.2 MSa/s | 167.9 MSa/s | 168.1 MSa/s | 167.3 MSa/s | 165.7 MSa/s |
symsync::steps |
— | — | — | — | 121.2 MSa/s | 157.9 MSa/s |
agc::steps |
123.2 MSa/s | 139.7 MSa/s | 139.1 MSa/s | 139.2 MSa/s | 134.5 MSa/s | 134.7 MSa/s |
dsss_receiver::search |
— | — | — | — | 83.1 MSa/s | 97.6 MSa/s |
carrier_nda::steps |
— | — | — | — | 95.2 MSa/s | 95.2 MSa/s |
carrier_nda::step |
— | — | — | — | 77.0 MSa/s | 84.0 MSa/s |
RateConverter::Interp(2.0) |
82.6 MSa/s | 82.7 MSa/s | 81.5 MSa/s | 77.7 MSa/s | 82.8 MSa/s | 82.7 MSa/s |
corr2d::single_row_fast_path |
— | — | — | — | 61.7 MSa/s | 70.9 MSa/s |
corr2d::multi_row_general_path |
— | — | — | — | 60.7 MSa/s | 60.5 MSa/s |
acq::native_nc90 |
— | — | — | — | 48.5 MSa/s | 54.5 MSa/s |
acq::native_nc176 |
— | — | — | — | 53.7 MSa/s | 49.8 MSa/s |
acq::native_nc256 |
— | — | — | — | 53.0 MSa/s | 46.1 MSa/s |
dll::steps |
— | — | — | — | 39.9 MSa/s | 43.4 MSa/s |
despreader::steps |
— | — | — | — | 35.9 MSa/s | 37.7 MSa/s |
dsss_receiver::track |
— | — | — | — | 36.0 MSa/s | 36.0 MSa/s |
agc::step |
36.0 MSa/s | 34.8 MSa/s | 35.2 MSa/s | 36.1 MSa/s | 34.3 MSa/s | 32.4 MSa/s |
ppe::doppler |
— | — | — | — | 12.8 MSa/s | 16.2 MSa/s |
wfm_reader::csv cf32 (text parse) |
— | — | — | — | — | 6.0 MSa/s |
wfm_writer::csv cf32 (text) |
— | — | — | — | — | 5.8 MSa/s |
acq::wideband_nc112 |
— | — | — | — | 3.4 MSa/s | 3.2 MSa/s |
acq::wideband_nc256 |
— | — | — | — | 3.1 MSa/s | 3.2 MSa/s |
acq::wideband_nc215 |
— | — | — | — | 3.4 MSa/s | 3.2 MSa/s |
ppe::chirp |
— | — | — | — | 0.4 MSa/s | 0.5 MSa/s |