Open nilgoyette opened 2 years ago
I did some tests with Constant
because it's the simpler
Constant(0.0)
is always faster than Constant(1.0)
I don't get it.Constant(1)
to simply fill the array (not copy the input into the smaller region) and NumPy is still faster than us. Of course I can't beat that!Constant(0)
, it takes 0ms. Some stuff might be optimized away.I read NumPy code in numpy/lib/arraypad.py
. There's nothing special, no magic. It's doing the same thing I am doing. I don't think it's possible to be faster than NumPy with ndarray 0.15. I think NumPy has simply been optimized by a lot of excellent programmers over the years, while ndarray hasn't.
Compared to NumPy,
pad
is slow.correlate1d
is less slow but we still need to make it faster. Those functions are particularly important because they are the basis for several other functions:correlate1d
:convolve1d
,gaussian_filter/1d
,prewitt
,sobel
pad
:correlate1d
,min/max filters
I'm not sure what NumPy does to be so fast. Of course, Cython is used, so it's compiled, optimized and there's no bound checks. but still, we're around 2-6x slower, depending in the mode. IMO, we should be able to be as fast, if not faster. It's a mystery to me how NumPy manages to be so fast (around 10x) on the
reflect
,symmetric
andwrap
modes.To replicate the results, please use
And for Python