- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Last year we did an IPP upgrade IPP V8.0 to IPP V2020.

After adjusted all function calls to new style usage we recognized performance round about factor 10

from ippsFIR_32f(...) in IPP V7.0

to ippsFIRSRInit_32f() in IPP V2020

We use IPP in single threaded mode, ippGetNumThreads () == 1.

Does anybody have similar behavior using ippFIR or other functions in IPP V2020?

What might be the reason ot performance loss?

Is there a way to get same performance in IPP V2020 like we had in IPP V8.0

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

After some tests I found the solution for our / my performance problem. This does not mean I found the solution for all configurations (sample rate, block size, filter length, ...) you can construct. My solution:

Instead of the IPP function ippsFIRSR (Performs single-rate FIR filtering of a source vector.) i used the function ippsFIRMR (Performs multi-rate FIR filtering of a source vector.). If values for up- and downFactor are set to 1 and values for up- and downPhase are set to 0 the MR Filter should act like the SR filter.

Doing that I returned to the old (IPP V8.0) performance values. The results are also comparable (e.g. visual inspection using Matlab). Of course the results are not 100% identical because of different filter algorithm is used.

The following can be found in the IPP documentation:

The multi-rate filtering is considered as a sequence of three operations: up sampling, filtering with a single-rate FIR filter, and down sampling. The algorithm is implemented as a single operation including the mentioned above three steps.

The IPP documentation let me think, ippsFIRMR is much more complex than ippsFIRSR. As there is additional up and down sampling I assumed the performance of ippsFIRMR is much lower than ippsFIRSR filtering. But ippsFIRMR is 10 times faster than ippsFIRSR.

Maybe my solution helps other users to beware of performance problems. As mentioned above I can not guarantee my solution is the one and only but in my case it helped.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

After some tests I found the solution for our / my performance problem. This does not mean I found the solution for all configurations (sample rate, block size, filter length, ...) you can construct. My solution:

Instead of the IPP function ippsFIRSR (Performs single-rate FIR filtering of a source vector.) i used the function ippsFIRMR (Performs multi-rate FIR filtering of a source vector.). If values for up- and downFactor are set to 1 and values for up- and downPhase are set to 0 the MR Filter should act like the SR filter.

Doing that I returned to the old (IPP V8.0) performance values. The results are also comparable (e.g. visual inspection using Matlab). Of course the results are not 100% identical because of different filter algorithm is used.

The following can be found in the IPP documentation:

The multi-rate filtering is considered as a sequence of three operations: up sampling, filtering with a single-rate FIR filter, and down sampling. The algorithm is implemented as a single operation including the mentioned above three steps.

The IPP documentation let me think, ippsFIRMR is much more complex than ippsFIRSR. As there is additional up and down sampling I assumed the performance of ippsFIRMR is much lower than ippsFIRSR filtering. But ippsFIRMR is 10 times faster than ippsFIRSR.

Maybe my solution helps other users to beware of performance problems. As mentioned above I can not guarantee my solution is the one and only but in my case it helped.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page