1 / 11

Compilation Techniques for Multimedia Processors

Compilation Techniques for Multimedia Processors. Andreas Krall and Sylvain Lelait Technische Universitat Wien. Motivation. High processing power needed by multimedia applications Special instruction sets for multimedia data Implemented by special processors

lavender
Download Presentation

Compilation Techniques for Multimedia Processors

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Compilation Techniques for Multimedia Processors Andreas Krall and Sylvain Lelait Technische Universitat Wien

  2. Motivation • High processing power needed by multimedia applications • Special instruction sets for multimedia data • Implemented by special processors • Multimedia instruction set extensions • Visual instruction set(VIS) of UltraSPARC • Altivec extension of PowerPC • MMX extension of Pentium • MAX-2 instruction set of HP PA-RISC

  3. Problems and Solutions • New functionality has not been exploited properly • Have to code in assembly language • Use provided system libraries • Call macros in high-level language • Compile a program coded in high-level language into multimedia instructions • Classic vectorization • Vectorization by loop unrolling

  4. Classic Vectorization • Loop analysis • Loop normalization • Scalar expansion • Dependence analysis • Vectorization • Alignment management • Strip mining • Constant expansion • Lower iteration space • Lower alignment • Instruction selection and register allocation

  5. Classic Vectorization • Loop analysis • Loop normalization • Scalar expansion • Dependence analysis • Vectorization • Alignment management • Strip mining • Constant expansion • Lower iteration space • Lower alignment • Instruction selection and register allocation

  6. Classic Vectorization • Loop analysis • Loop normalization • Scalar expansion • Dependence analysis • Vectorization • Alignment management • Strip mining • Constant expansion • Lower iteration space • Lower alignment • Instruction selection and register allocation

  7. Classic Vectorization • Loop analysis • Loop normalization • Scalar expansion • Dependence analysis • Vectorization • Alignment management • Strip mining • Constant expansion • Lower iteration space • Lower alignment • Instruction selection and register allocation

  8. Vectorization by Loop Unrolling • Loop analysis • Compute unrolling degree • Loop unrolling • Dependence analysis • Dependence verification • Generation of vector instructions • Alignment management • Lower iteration space • Lower alignment • Instruction selection and register allocation

  9. Vectorization by Loop Unrolling • Loop analysis • Compute unrolling degree • Loop unrolling • Dependence analysis • Dependence verification • Generation of vector instructions • Alignment management • Lower iteration space • Lower alignment • Instruction selection and register allocation

  10. Vectorization by Loop Unrolling • Loop analysis • Compute unrolling degree • Loop unrolling • Dependence analysis • Dependence verification • Generation of vector instructions • Alignment management • Lower iteration space • Lower alignment • Instruction selection and register allocation

  11. Experimental Results

More Related