Community
cancel
Showing results for 
Search instead for 
Did you mean: 
chobanu_p_m
Beginner
90 Views

nondeterministic performance of IPP call

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
90 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

chobanu_p_m
Beginner
90 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.
Vladimir_Dudnik
Employee
90 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
chobanu_p_m
Beginner
90 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?
Vladimir_Dudnik
Employee
90 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
Reply