Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there any current ideas about IIR filter algorithm parallelization with thread count greater than filter order?

Ideally, parallelization method should load GPU efficiently.

share|improve this question
I think this should be a bit more specific "any current ideas" doesn't narrow it down. – jonsca Mar 17 '13 at 0:36

You might be interested in the following paper:

Nehab, D; Maximo, A; Lima, R; Hoppe, H: GPU-Efficient Recursive Filtering and Summed-Area Tables. ACM Trans. Graph. 30(6):176 (December 2011). doi://10.1145/2024156.2024210

The basic idea is to recognize that linear filters are associative (at least in theory) and thus you can

  1. divide your input into chunks.
  2. every thread initializes its iir filter state with 0s and processes its chunk.
  3. every thread stores the final state of its iir filter for its chunk.
  4. now (because of associativity) you can figure out what the beginning filter state is of every chunk.
  5. so then you run the filter over the chunk again, this time correctly initialized and get the correct output.

As @jonsca pointed out, you were a bit vague about your use case. The above all assumes that you can do batch processing on your input. If you need some kind of real-time filtering none of what I said is relevant.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.