Abstract
In 1994, the first multimedia extension, MAX-1, was introduced to general-purpose processors by HP. Almost ten years have passed, the present means of accessing the computing power of multimedia extensions are still limited to mostly assembly programming, intrinsic functions, and the use of system libraries. Because of the similarities between multimedia extensions and vector processors, it is believed that traditional vectorization can be used to compile for multimedia extensions. Can traditional vectorization effectively vectorize multimedia applications for multimedia extensions? If not, what additional techniques are needed? To answer these two questions, we conducted a code study on the Berkeley Multimedia Workload. Through this, we identified several new challenges arise in vectorizing for multimedia extensions and proposed some solutions to these challenges.
This work is supported by the National Science Foundation under Grant CCR01-21401ITR. This work is not necessarily representative of the positions or policies of the Government.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Diefendorff, K., Dubey, P.: How Multimedia Workloads Will Change Processor Design. IEEE Computer 30, 43–45 (1997)
Slingerland, N., Smith, A.: Design and characterization of the Berkeley multimedia workload. Multimedia Systems 8, 315–327 (2002)
Lee, C., Potkonjak, M., Mangione-Smith, W.: MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems. In: Proceedings of Micro 1997, pp. 330–335 (1997)
Free Software Foundation: Using the GNU Compiler Collection (GCC), Boston, MA (2002)
Patterson, D., Hennessy, J.: Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, San Mateo (1996)
Allen, R., Kennedy, K.: Automatic translation of FORTRAN programs to vector form. ACM Transactions on Programming Languages and Systems (TOPLAS) 9, 491–542 (1987)
Kuck, D., et al.: Measurements of Parallelism in ordinary FORTRAN programs. IEEE Computer 7, 37–46 (1974)
Padua, D., Wolfe, M.: Advanced Compiler Optimizations for Supercomputers. ACM Communication 29, 1184–1201 (1986)
Cheong, G., Lam, M.: An Optimizer for Multimedia Instruction Sets. Second SUIF Compiler Workshop, Stanford (1997)
Konda, V., Lauer, H., Muroi, K., Tanaka, K., Tsubota, H., Xu, E., Wilson, C.: A SIMDizing C Compiler for the Mitsubishi Electric Neuro4 Processor Array. In: First SUIF Compiler Workshop, Stanford (1996)
Sreraman, N., Govindarajan, R.: A Vectorizing Compiler for Multimedia Extensions. International Journal of Parallel Programming 28, 363–400 (2000)
Krall, A., Lelait, S.: Compilation Techniques for Multimedia Processors. International Journal of Parallel Programming 18, 347–361 (2000)
Bik, A., Girkar, M., Grey, P., Tian, X.: Automatic Intra-Register Vectorization for the Intel? Architecture. International Journal of Parallel Programming 30, 65–98 (2002)
Fisher, R., Dietz, H.: Compiling for SIMD within a Register. In: 1998 Workshop on Languages and Compilers for Parallel Computing. University of North Carolina at Chapel Hill, North Carolina (1998)
Larsen, S., Amarasinghe, S.: Exploiting Superword Level Parallelism with Multimedia Instruction Sets. In: Proceeding of the SIGPLAN Conference on Programming Language Design and Implementation, Vancouver, B. C (2000)
Callahan, D., Dongarra, J., Levine, D.: Vectorizing Compilers: A Test Suite and Results. In: Proceedings of the 1988 ACM/IEEE conference on Supercomputing, Orlando, Florida (1988)
Kohn, L., Maturana, G., Tremblay, M., Prabhu, A., Zyner, G.: The Visual Instruction Set (VIS) in UltraSPARC. In: Proc. of Compcon 1995, San Francisco, California (1995)
Lee, R., McMahan, L.: Mapping of Application Software to the Multimedia Instructions of General Purpose Microprocessors. In: IS&T/SPIE Symp. on Electric Imaging: Science and Technology, San Jose, California (1997)
Carlson, D., Castelino, R., Mueller, R.: Multimedia Extensions for a 550-MHz RISC Microprocessor. IEEE Journal of Solid-State Circuits 32, 1618–1624 (1997)
MIPS Technologies, Inc.: MIPS Extension for Digital Media with 3D. White Paper (1997)
Intel Corporation.: IA32 Intel Architecture Software Developer’s Manual with Preliminary Intel Pentium 4 Processor Information Volume 1: Basic Architecture
Oberman, S., Favor, S., Weber, F.: AMD 3DNow! Technology: Architecture and Implementations. IEEE Micro 19, 37–48 (1999)
Intel Corporation.: Intel Architecture Optimization Reference Manual
Fuller, S.: Motorola’s AltiVec Technology. White Paper (1998)
Blume, W., Eigenmann, R.: The Range Test: A Dependence Test for Symbolic, Non-linear Expressions. In: Proceedings of Supercomputing 1994, Washington D. C., pp. 528–537 (1994)
Wu, P., Cohen, A., Hoeflinger, J., Padua, D.: Monotonic Evolution: An Alternative to Induction Variable Substitution for Dependence Analysis. In: Proceedings of the 15th International Conference on Supercomputing, Sorrento, Italy (2001)
Bik, A., Girkar, M., Grey, P., Tian, X.: Automatic Detection of Saturation and Clipping Idioms. In: Pugh, B., Tseng, C.-W. (eds.) LCPC 2002. LNCS, vol. 2481, pp. 61–74. Springer, Heidelberg (2002)
Larsen, S., Witchel, E., Amarasinghe, S.: Increasing and Detecting Memory Address Congruence. In: Proceedings of 11th International Conference on Parallel Architectures and Compilation Techniques (PACT), Charlottesville, VA (2002)
International Standard Organization: Programming Languages - C. ISO/IEC 9899 (1999)
Crescent Bay Software Corp., http://www.psrv.com/vast_altivec.html
The Portland Group Compiler Technology, http://www.pgroup.com/products/
Codeplay Software Limited, http://www.codeplay.com/vectorc/features.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ren, G., Wu, P., Padua, D. (2004). A Preliminary Study on the Vectorization of Multimedia Applications for Multimedia Extensions. In: Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2003. Lecture Notes in Computer Science, vol 2958. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24644-2_27
Download citation
DOI: https://doi.org/10.1007/978-3-540-24644-2_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21199-0
Online ISBN: 978-3-540-24644-2
eBook Packages: Springer Book Archive