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

problem in using IPP library in linux..

coolsandyforyou
Beginner
477 Views
Hi,
I m using CodeBlocks IDE in linux. I want to use Ipp libraries there(i have installed and used them in windows with visual studio). I am unable to link the libraries to that codeblocks.can any body tell how to do it?
Another doubt is i developed a codec project in windows using IPP,multithreading. the performance is not still sufficient for real time. Can i get any speedup if i run the project in linux on the same system. Does OS improve the performace of any program or it is only processor dependant?
thanks in advance..
0 Kudos
5 Replies
PaulF_IntelCorp
Employee
477 Views

I've never used the "CodeBlocks IDE" so I only speculate.

The IPP library is independent of the IDE you choose to host your development tools. You will need to configure your makefiles or build scripts to reference the appropriate directories and files in ways similar to using any other IDE or makefiles on Linux. Additionally, the IPP library is precompiled and provided in binary format, so the specific compiler/linker you use with CodeBlocks is not important (e.g., Intel or gcc).

The raw performance of your system is independent of the operating system and the execution mode (kernel mode versus user mode). When you execute an IPP function it will run at the same speed on a Linux system as it will on a Windows system (assuming identical hardware). The differences in performance between operating systems will depend more on the type and frequency of OS calls your application makes, how the OS prioritizes and schedules kernel and user threads, and how drivers and interrupt handlers interact with the hardware and the operating system.

Real-time performance is a combination of having a hardware system that is "fast enough" to handle processing of events (the raw performance of your system) and the ability of the OS to prioritize and insure events and threads are scheduled in a time-critical manner to insure that "real-time" events are handled at the right time. IPP provides your application with a raw performance boost, your operating system and application plus the hardware determine the overall real-time nature.

Paul

0 Kudos
coolsandyforyou
Beginner
477 Views
Thanks Paul i understood what you have said.
But here is one practical experience that i got. JM is the name of the reference codec software, when i run it in linux using make file and got 2frames/sec output. But when i run in windows(opening that project in visual studio and run)all i got 0.2frames/sec. I m in a fix whether visual studio is eating any time? does the exe file created by VS2010 and the .exe file in linux are both the same? how can you justify the above case? Wat i am seeing in the above case is real perfomance improvement or some thing else? am i missing something here?do clarify me..
the codec we have developed is on Visual Studio getting 10 frame/sec(with IPP, and slice level parellism). If i convert the project to linux .exe file can i get the improvement in the same way?
0 Kudos
PaulF_IntelCorp
Employee
477 Views
The JM H.264/AVC reference model is a reference model only, and should not be used for performance comparisons. See the following reference for more information regarding that code:

New release of H.264/AVC reference software JM 16.2

I am not familiar with the JM reference code, so I cannot comment on what differences may exist between the Linux version and the Windows version of the code. If they are substantially different, for example, in how they handle threading, memory allocation, disk I/O, and the type and frequency of OS calls, I would expect the results to be different.

Is it possible that you have Visual Studio debug features turned on in the Windows executables you are generating from the JM reference code? Such features can have a profoundly detrimental impact on the measured performance of an application.

If you convert your Windows app to Linux you could get similar performance on both platforms. The performance differences you measure will depend on a variety of factors, including how much time the application is spending on I/O and OS calls versus how much time it spends on pure processing, differences in threading between the two platforms, memory paging, the existence of other applications, etc. There are simply too many factors to provide a simple forumula.

Ultimately, you will need to convert your application, or a small subset of the performance sensitive portions of your application, to Linux to determine if there will be any significant advantages to moving to another OS platform.

Paul
0 Kudos
coolsandyforyou
Beginner
477 Views
We studied JM software, no threading is employed in it..it is just the reference software(as u mentioned) to show how things work. As u said there might be some other reasons for that performance gain.
Thank you for ur time, i will try simple modules and check abt the performance improvement..
0 Kudos
coolsandyforyou
Beginner
477 Views
It worked....
i changed the settings in the visual studio from debug mode to Release mode that lead to 5 time gain in performance in case of JM.
Thanks for your suggestion..it worked in our project also...
0 Kudos
Reply