Optimization of FAAD2 Audio Mpeg Decoder Performance by Functional Decomposition Multi-Threading and SIMD

82% Speedup using WIN32 API

74% Speedup by OpenMP API


Home Project Description Documentation Source Files Executables\Demo Links

 

 

                              Performed by:

Borislav Glozman sglozman@t2.technion.ac.il

Stanislav Banghiev sstasb@t2.technion.ac.il

                                         Advisor:     

Tomer Morad tomerm@tx.technion.ac.il

 

                                                            Other Performance Tuning Projects:

                                                http://softlab.technion.ac.il/performance_tuning/

 

Technion - Department of Electrical Engineering - Software Lab

26.6.05

 

 

 

 

 

 

 

 

The purpose of this project was to achieve performance improvement of an Open Source application. That was done by gaining maximum speed-up using the advanced architecture of the Intel Pentium 4 processor, specially its features like SIMD and Hyper-Threading, finding the bottle-necks in the source code, analyzing and eliminating them. The application cross platform and backwards compatibility were preserved. Secondary goal was to return it to the open source community.

 

The improvement was reached by splitting the application between threads and thereby letting the work be done in parallel. This action speeds up the performance of the application on Pentium 4 processors that support HT (Hyper-Threading) technology due to the fact that threaded work can be done in parallel on the two cores simulated by the processor. Benefit was also expected from using SIMD (Single Instruction Multiple Data) instructions, using the SSE2 registers that allow performing packed vector instructions on double precision floating point numbers as well as on packed integers.