Difference between revisions of "SIMD"

From ThinkWiki
Jump to: navigation, search
(added ssse3)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
SIMD (Single Instruction, Multiple Data) is a set of operations for efficiently handling large amounts of data. It makes it possible to execute one command on a set of data instances instead of having the same command to be executed on each of the data instances.
 
SIMD (Single Instruction, Multiple Data) is a set of operations for efficiently handling large amounts of data. It makes it possible to execute one command on a set of data instances instead of having the same command to be executed on each of the data instances.
  
First introduced in large-scale supercomputers SIMD instrucion sets have become popular in personal computing hardware, hence being mostly associated with these units. The most widely known SIMD instructions sets are AMDs 3DNow! and Intels MMX and SSE sets in their various versions.
+
First introduced in large-scale supercomputers SIMD instrucion sets have become popular in personal computing hardware, hence being mostly associated with these units. The most widely known SIMD instructions sets are AIMs (Apple-IBM-Motorola) [[WikiPedia:AltiVec|AltiVec]] for the PowerPC, AMDs [[Wikipedia:3DNow!|3DNow!]] and Intels MMX and SSE sets in their various versions.
  
 
==MMX==
 
==MMX==
 
+
MMX is a SIMD instruction introduced by Intel with later models of the Pentium processor line. It provides integer operations only and has a strong limitation in that it makes it difficult to work with integer and floating point data at the same time, since it reuses the IA-32 FPU registers.
==MMX 2==
 
 
 
==3DNow!==
 
  
 
==SSE==
 
==SSE==
Line 17: Line 14:
 
==SSE 3==
 
==SSE 3==
 
SSE 3 extends the SSE 2 command set by 13 instrucions for converting floating point numbers into integer numbers, for complex arithmetics, video encoding, image processing and thread communications.
 
SSE 3 extends the SSE 2 command set by 13 instrucions for converting floating point numbers into integer numbers, for complex arithmetics, video encoding, image processing and thread communications.
 +
 +
==SSSE 3==
 +
SSSE 3 extends the SSE 3 command set by 16 instrucions for both 32 and 64 Bit data (Intel counts it as 32)
 +
 +
[[Category:Glossary]]

Latest revision as of 12:50, 4 August 2007

SIMD (Single Instruction, Multiple Data) is a set of operations for efficiently handling large amounts of data. It makes it possible to execute one command on a set of data instances instead of having the same command to be executed on each of the data instances.

First introduced in large-scale supercomputers SIMD instrucion sets have become popular in personal computing hardware, hence being mostly associated with these units. The most widely known SIMD instructions sets are AIMs (Apple-IBM-Motorola) AltiVec for the PowerPC, AMDs 3DNow! and Intels MMX and SSE sets in their various versions.

MMX

MMX is a SIMD instruction introduced by Intel with later models of the Pentium processor line. It provides integer operations only and has a strong limitation in that it makes it difficult to work with integer and floating point data at the same time, since it reuses the IA-32 FPU registers.

SSE

SSE is a set of instuctions optimized for handling floating point operations on a 128 bit level.

SSE 2

SSE 2 contains 144 new commands for Cache and Memory management and the 64 bit commands of the MMX set were improved and extended to 128 bit.

SSE 3

SSE 3 extends the SSE 2 command set by 13 instrucions for converting floating point numbers into integer numbers, for complex arithmetics, video encoding, image processing and thread communications.

SSSE 3

SSSE 3 extends the SSE 3 command set by 16 instrucions for both 32 and 64 Bit data (Intel counts it as 32)