Hardback : £88.74
A number of widely used contemporary processors have instruction-set extensions for improved performance in multi-media applications. The aim is to allow operations to proceed on multiple pixels each clock cycle. Such instruction-sets have been incorporated both in specialist DSPchips such as the Texas C62xx (Texas Instruments, 1998) and in general purpose CPU chips like the Intel IA32 (Intel, 2000) or the AMD K6 (Advanced Micro Devices, 1999). These instruction-set extensions are typically based on the Single Instruc tion-stream Multiple Data-stream (SIMD) model in which a single instruction causes the same mathematical operation to be carried out on several operands, or pairs of operands, at the same time. The level or parallelism supported ranges from two floating point operations, at a time on the AMD K6 architecture to 16 byte operations at a time on the Intel P4 architecture. Whereas processor architectures are moving towards greater levels of parallelism, the most widely used programming languages such as C, Java and Delphi are structured around a model of computation in which operations takeplace on a single value at a time. This was appropriate when processors worked this way, but has become an impediment to programmers seeking to make use of the performance offered by multi-media instruction -sets. The introduction of SIMD instruction sets (Peleg et al.
A number of widely used contemporary processors have instruction-set extensions for improved performance in multi-media applications. The aim is to allow operations to proceed on multiple pixels each clock cycle. Such instruction-sets have been incorporated both in specialist DSPchips such as the Texas C62xx (Texas Instruments, 1998) and in general purpose CPU chips like the Intel IA32 (Intel, 2000) or the AMD K6 (Advanced Micro Devices, 1999). These instruction-set extensions are typically based on the Single Instruc tion-stream Multiple Data-stream (SIMD) model in which a single instruction causes the same mathematical operation to be carried out on several operands, or pairs of operands, at the same time. The level or parallelism supported ranges from two floating point operations, at a time on the AMD K6 architecture to 16 byte operations at a time on the Intel P4 architecture. Whereas processor architectures are moving towards greater levels of parallelism, the most widely used programming languages such as C, Java and Delphi are structured around a model of computation in which operations takeplace on a single value at a time. This was appropriate when processors worked this way, but has become an impediment to programmers seeking to make use of the performance offered by multi-media instruction -sets. The introduction of SIMD instruction sets (Peleg et al.
I SIMD Programming.- 1 Computer Speed, Program Speed.- 2 SIMD Instruction-sets.- 3 SIMD Programming in Assembler and C.- 4 Intel SIMD Instructions.- 5 3DNOW Instructions.- II SIMD Programming Languages.- 6 Another Approach: Data Parallel Languages.- 7 Basics of Vector Pascal.- 8 Algorithmic Features of Vector Pascal.- 9 User-defined Types.- 10 Input and Output.- 11 Permutations and Polymorphism.- III Programming Examples.- 12 Advanced Set Programming.- 13 Parallel Image Processing.- 14 Pattern Recognition and Image Compression.- 15 3D Graphics.- IV VIPER.- 16 Introduction to VIPER.- Appendix A Compiler Porting Tools.- A.1 Dependencies.- A.2 Compiler Structure.- A.2.1 Vectorisation.- A.2.2 Porting Strategy.- A.3 ILCG.- A.4 Supported Types.- A.4.1 Data Formats.- A.4.2 Typed Formats.- A.4.3 ref Types.- A.5 Supported Operations.- A.5.1 Type Casts.- A.5.2 Arithmetic.- A.5.3 Memory.- A.5.4 Assignment.- A.5.5 Dereferencing.- A.6 Machine Description.- A.6.1 Registers.- A.6.2 Register Sets.- A.6.3 Register Arrays.- A.6.4 Register Stacks.- A.6.5 Instruction Formats.- A.7 Grammar of ILCG.- A.8 ILCG Grammar.- A.8.1 Helpers.- A.8.2 Tokens.- A.8.3 Non-terminal Symbols.- Appendix B Software Download.- Appendix C Using the Command Line Compiler.- C.1 Invoking the Compiler.- C.1.1 Environment Variable.- C.1.2 Compiler Options.- C.1.3 Dependencies.- C.2 Calling Conventions.- C.3 Array Representation.- C.3.1 Range Checking.- References.
Springer Book Archives
"Any scientist or engineer having to analyze any volume of data should read this book. The streaming extensions on today's CPUs come to life with the code that is presented clearly and concisely, and your applications will learn to fly. Thumbs up for Paul Cockshott and Keith Renfrew." Patrick Van Laake, Ph.D. Equator Spatial Technologies Endorsement for: MMX and Streaming SIMD programming Using PCs and Linux P. Cockshott & K. Renfrew, Springer, 2003 "Vector Pascal represents a major advance in enabling non-experts to exploit the byte-parallel processing capabilities of modern CPUs. Cockshott and Renfrew’s succinct book provides a well-written introduction to contemporary MMX and SIMD technology, and a solid grounding in using Vector Pascal and its tools to develop substantive image processing and graphics applications." Dr Greg Michaelson Head of Computer Science Heriot-Watt University Riccarton EH14 4AS greg@macs.hw.ac.uk 0131 451 3422
![]() |
Ask a Question About this Product More... |
![]() |