ndarray-conv-0.1.1 has been yanked.
ndarray-conv
ndarray-conv is a crate that provides a fast convolutions library in pure Rust.
Inspired by
ndarray-vision (https://github.com/rust-cv/ndarray-vision)
convolutions-rs (https://github.com/Conzel/convolutions-rs#readme)
pocketfft (https://github.com/mreineck/pocketfft)
ndarray-conv is still under heavily developing, the first stage aims to provide a fast conv_2d func for ndarray::Array2.
First Stage
- basic conv_2d
- use fft to accelerate big kernel's conv_2d computation
Roughly Bench
conv_2d
2x-4x faster than ndarray-vision and 4x-10x faster than convolutions-rs. 2x slower than opencv with small kernel (size < 11)
conv_2d_fft
10x~ faster than ndarray-vision and convolutions-rs
as fast as opencv on large data and kernel (2000, 5000) * (21, 41)
2x faster than opencv on much larger data and kernel
Example
use *;
x.conv_2d;