Skip to content
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

Choice of Modulo Polynomials #10

Open
JoWayne opened this issue Nov 28, 2017 · 4 comments
Open

Choice of Modulo Polynomials #10

JoWayne opened this issue Nov 28, 2017 · 4 comments

Comments

@JoWayne
Copy link

JoWayne commented Nov 28, 2017

Great paper Andrew!!

Out of curiosity , how do you come up w/ the choice of modulo polynomials? Trial & error to figure out polynomial which'd give the minimal muls?
For cyclic convolutions, it's pretty simple(cyclotomic poly.) but I've always been intrigued by how one comes up w/ ones for acyclic conv. ( I did read Nussbaumer/HK Garg/Tolimieri/Blahut etc, but haven't been able to figure out a standard method yet).

Thanks!

@andravin
Copy link
Owner

andravin commented Nov 28, 2017 via email

@JoWayne
Copy link
Author

JoWayne commented Nov 29, 2017

Thanks for clarifying this!

@buttercutter
Copy link

@andravin
Copy link
Owner

Hi @ProMach , I wrote the "Fast algorithms ..." paper before I wrote winCNN.

The paper uses a more general technique that can compute a much larger family of fast convolution algorithms. But this was overkill, because the subset of fast algorithms that use the minimum number of multiplications can just be computed with lagrange polynomial interpolation, which is the technique used by winCNN.

I have resisted writing a complete tutorial on fast convolution algorithms, because it is a rather involved subject that has been covered very well by a few different text books. I personally found "Fast Algorithms for Signal Processing" by Richard Blahut to be the best of them. But the "Digital Signal Processing Handbook" also covers the topic well. Really you should try to get access to such a text if you want to master this subject.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants