-
Notifications
You must be signed in to change notification settings - Fork 2
Boosting the performance of pyfftw_sdp.py
#20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Review these changes at https://app.gitnotebooks.com/stumpy-dev/sliding_dot_product/pull/20 |
Tests are passing! Now, let's look at the performance. The data is saved in timing.csv.
![]() We can see some improvement particularly for cases where |
Now, let's check the performance on MATLAB Online. I've checked the following cases:
We will use the first case, i.e. The code for
Each of the images below is for one ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
@NimaSarajpoor Can you please provide some conclusions/observations based on the outputs above? |
The following observation is based on the results I obtained for I think there are still two items that we need to check:
@seanlaw |
Yes, let's see the results for
Do we know if the saved wisdom is portable/transferable across different architectures/OS (i.e., is it simply a file that gets read)? I'd assume that the object is not portable/transferable. Given that we might use a So, creating the wisdom at runtime might be slow but probably still fine if the wisdom is reused many times. Then, the user can choose to precompute the wisdom themselves BEFORE they call SDP for a range of My guess is that importing is negligible compared to the time it takes to compute the wisdom and/or to complete Does that help? |
Awesome! One thing that I worry about is the installation of |
|
That's speedup from storing the rfft object is pretty insane! |
We may end up with using different algos for calculating sliding-dot-product for arrays with different lengths. However, it would be great to see if one algo, like
pyfftw_sdp
, could outperform MATLAB's FFTW-based sliding dot product. It seems thatpyfftw_sdp
is slightly outperformed by MATLAB's fftw_sdp when the length of array is< 2^8
.After checking the performance of (R)FFT and I(R)FFT in #19 and having some discussion in pyFFTW/pyFFTW#425 (comment), I decided to see if I can boost the performance of pyfftw_sdp.