SIMD Programming Manual for Linux and Windows

  • Paul Cockshott
  • Kenneth Renfrew
Part of the Springer Professional Computing book series (SPC)

Table of contents

  1. Front Matter
    Pages i-xxvi
  2. SIMD Programming

    1. Front Matter
      Pages 1-1
    2. Paul Cockshott, Kenneth Renfrew
      Pages 3-9
    3. Paul Cockshott, Kenneth Renfrew
      Pages 11-22
    4. Paul Cockshott, Kenneth Renfrew
      Pages 23-46
    5. Paul Cockshott, Kenneth Renfrew
      Pages 47-97
    6. Paul Cockshott, Kenneth Renfrew
      Pages 99-105
  3. SIMD Programming Languages

    1. Front Matter
      Pages 107-107
    2. Paul Cockshott, Kenneth Renfrew
      Pages 109-120
    3. Paul Cockshott, Kenneth Renfrew
      Pages 121-150
    4. Paul Cockshott, Kenneth Renfrew
      Pages 151-163
    5. Paul Cockshott, Kenneth Renfrew
      Pages 165-186
    6. Paul Cockshott, Kenneth Renfrew
      Pages 187-196
    7. Paul Cockshott, Kenneth Renfrew
      Pages 197-208
  4. Programming Examples

    1. Front Matter
      Pages 209-209
    2. Paul Cockshott, Kenneth Renfrew
      Pages 211-228
    3. Paul Cockshott, Kenneth Renfrew
      Pages 229-264
    4. Paul Cockshott, Kenneth Renfrew
      Pages 265-277
    5. Paul Cockshott, Kenneth Renfrew
      Pages 279-292
  5. VIPER

    1. Front Matter
      Pages 293-293

About this book

Introduction

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.

Keywords

3D Assembly language Compiler Intel Linux MMX Parallel programming Pascal Performance SIMD image processing programming

Authors and affiliations

  • Paul Cockshott
    • 1
  • Kenneth Renfrew
    • 2
  1. 1.Department of Computing ScienceUniversity of GlasgowGlasgowUK
  2. 2.Crookhill FarmAyrshireUK

Bibliographic information

  • DOI https://doi.org/10.1007/978-1-4471-3862-4
  • Copyright Information Springer-Verlag London 2004
  • Publisher Name Springer, London
  • eBook Packages Springer Book Archive
  • Print ISBN 978-1-84996-920-8
  • Online ISBN 978-1-4471-3862-4