Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

nondeterministic performance of IPP call

chobanu_p_m
Beginner
411 Views
I have some problems with calling a FIR filtring function (ippsFIR_32f_I)

it has the same input, including the delay line (i'v checked the input by saving it) for any call.

the symptoms are the following: the result of evaluating the FIR-filtring differs from any other evaluating. and all other calling (exept the first one) are the same.

how could it be? how can I fix it?
regards,
Petr
0 Kudos
5 Replies
Vladimir_Dudnik
Employee
411 Views
I'm affraid I did not get your question. Is that about different performance you get from sequence of the same IPP calls? It mightcaused bysystem warm-up.. loading data into processor cache and so on.

Vladimir

0 Kudos
chobanu_p_m
Beginner
411 Views
I'm affraid I did not get your question. Is that about different performance you get from sequence of the same IPP calls? It mightcaused bysystem warm-up.. loading data into processor cache and so on.

Vladimir

thats it. the same sequence, the same input parameters. each time the first performance after lunching the programm gives me a result that differs from all other performances.

lets say in other words.
i have some 2D signal. I apply some filter for each row and write the result to file.
next i load the data once again and apply the same filtration and write the result to file.
i get diffrent results. if i reload the data again and apply the filter, I get the same result as in the second time. and so on as much as

if I draw the result using color autoscaling i cant see the difference. only if i save the data and compare the digits. it means that the profile of the signal is the same. it differs be some scale.

such performance is the same for any computer i'v tested.
0 Kudos
Vladimir_Dudnik
Employee
411 Views
I think it is usual case when data processing time is much less than data loading time. First time you read file into memory it get cached by OS for some time, so the next run data are already in OS file cache.

Another reason is IPP DLLs, we usedelayed load linker option to build IPP DLLs. So the libraries get's loaded not at the start of your program but only after you call the first IPP function. Then again, loaded DLLs stays in OS file cache for some time. So next run will have better performance.

Regards,
Vladimir
0 Kudos
chobanu_p_m
Beginner
411 Views
I think it is usual case when data processing time is much less than data loading time. First time you read file into memory it get cached by OS for some time, so the next run data are already in OS file cache.

Another reason is IPP DLLs, we usedelayed load linker option to build IPP DLLs. So the libraries get's loaded not at the start of your program but only after you call the first IPP function. Then again, loaded DLLs stays in OS file cache for some time. So next run will have better performance.

Regards,
Vladimir

before using filtring I use a call of ippStaticInit. doesn't it load the library to the cache?
0 Kudos
Vladimir_Dudnik
Employee
411 Views
You do not need to call ippStaticInit when you link with IPP DLLs (it is no ops in DLL case). But I think it should be enough to load DLL.

Regards,
Vladimir
0 Kudos
Reply