Abstract
Modern processors’ multimedia extensions (MME) provide SIMD ISAs to boost the performance of typical operations in multimedia applications. However, automatic vectorization support for them is not very mature. The key difficulty is how to vectorize those SIMD-ISA-supported idioms in source code in an efficient and general way. In this paper, we introduce a powerful and ex-tendable recognition engine to solve this problem, which only needs a small amount of rules to recognize many such idioms and generate efficient SIMD in-structions. We integrated this engine into the classic vectorization framework and obtained very good performance speedup for some real-life applications.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This research supported by: NSF of China (60273046), Science and Technology Committee of Shanghai, China (02JC14013) and Intel-University Cooperation Project (Optimizing Compiler for Intel NetBurst Microarchitecture).
Download to read the full chapter text
Chapter PDF
References
Allen, R., Kennedy, K.: Automatic Translation of Fortran Programs to Vector Form. ACM Trans. on Programming Languages and Systems 9(4), 491–542 (1987)
Padua, D., Wolfe, M.: Advanced Compiler Optimizations for Supercomputers. Comm. of the ACM 29(12), 1184–1201 (1986)
Ren, G., Wu, P., Padua, D.: A Preliminary Study On the Vectorization of Multimedia Applications for Multimedia Extensions. In: Proc. of the 16th Int’l Workshop on Languages and Compilers for Parallel Computing (2003)
Slingerland, N., Smith, A.J.: Design and Characterization of the Berkeley Multimedia Workload. Multimedia Systems 8(4), 315–327 (2002)
Slingerland, N., Smith, A.J.: Measuring the Performance of Multimedia Instruction Sets. IEEE Trans. Computers 51(11), 1317–1332 (2002)
Boekhold, M., Karkowski, I., Corporaal, H.: Transforming and Parallelizing ANSI C Programs Using Pattern Recognition. In: Sloot, P.M.A., Hoekstra, A.G., Bubak, M., Hertzberger, B. (eds.) HPCN-Europe 1999. LNCS, vol. 1593, p. 673. Springer, Heidelberg (1999)
Larsen, S., Amarasinghe, S.: Exploiting Superword Level Parallelism with Multimedia Instruction Sets. ACM SIGPLAN Notices 35(5), 145–156 (2000)
Zheng, B., Tsai, J.Y., Zhang, B.Y., Chen, T., Huang, B., Li, J.H., Ding, Y.H., Liang, J., Zhen, Y., Yew, P.C., Zhu, C.Q.: Designing the Agassiz Compiler for Concurrent Multithreaded Architectures. In: Proc. of the 12th Int’l Workshop on Languages and Compilers for Parallel Computing, pp. 380–398 (1999)
Fraser, C.W., Hanson, D.R., Proebsting, T.A.: Engineering Efficient Code Generators Using Tree Matching and Dynamic Programming. TR-386-92, Princeton University
Intel Corporation. Intel C++ Compiler User’s Guide (2003), http://developer.intel.com/
Sreraman, N., Govindarajan, R.: A Vectorizing Compiler for Multimedia Extensions. Int’l Journal on Parallel Processing (2000)
Bik, A.J.C., Girkar, M., Grey, P.M., Tian, X.: Automatic Detection of Saturation and Clipping Idioms. In: Proc. of the 15th Int’l Workshop on Languages and Compilers for Parallel Computers (July 2002)
Intel Corporation. Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture (2001), http://developer.intel.com/
Intel Corporation. Intel Architecture Optimization Reference Manual (2001), http://developer.intel.com/
Cheong, G., Lam, M.S.: An Optimizer for Multimedia Instruction Sets. Second SUIF Compiler Workshop, Stanford (August 1997)
Krall, A., Lelait, S.: Compilation Techniques for Multimedia Processors. Int’l Journal of Parallel Programming 28(4), 347–361 (2000)
Fisher, R.J., Dietz, H.G.: Compiling for SIMD within a Register. In: Workshop on Languages and Compilers for Parallel Computing, University of North Carolina (August 1998)
Allen, J.R., Kennedy, K., Porterfield, C., Warren, J.: Conversion of Control Dependence to Data Dependence. In: Proc. of the 10th ACM SIGACT-SIGPLAN symp. on Principles of Programming Languages, Austin, Texas, pp. 177–189 (1983)
Liao, S., Devadas, S., Keutzer, K.: A Text-Compression-Based Method for Code Size Minimization in Embedded Systems. ACM Trans. on Design Automation of Electronic Systems 4(1), 12–38 (1999)
Stephenson, M., Babb, J., Amarasinghe, S.: Bitwidth Analysis with Application to Silicon Compilation. In: ACM SIGPLAN Conf. on Programming Language Design and Implementation (June 2000)
Fuller, S.: Motorola’s AltiVec Technology. White Paper, May 6 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jiang, W. et al. (2005). Boosting the Performance of Multimedia Applications Using SIMD Instructions. In: Bodik, R. (eds) Compiler Construction. CC 2005. Lecture Notes in Computer Science, vol 3443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31985-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-31985-6_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25411-9
Online ISBN: 978-3-540-31985-6
eBook Packages: Computer ScienceComputer Science (R0)