Support

Intel® Streaming SIMD Extensions Technology


Last Reviewed: 10-Sep-2018
Article ID: 000005779

What are Intel® Streaming SIMD Extensions?

Instruction Set Extensions are additional instructions that can increase performance when the same operations are performed on multiple data objects. Refer to Intel® Architecture Instruction Set Extensions Programming Reference.

Instruction Set Extensions can include:

  • Single Instruction Multiple Data (SIMD)
  • Intel® Streaming SIMD Extensions (Intel® SSE,Intel® SSE2, Intel® SSE3, and Intel® SSE4)
  • Intel® Advanced Vector Extensions (Intel® AVX, Intel® AVX2, and Intel® AVX-512)   

Streaming SIMD Extensions (SSE)

SSE is a processor technology that enables single instruction multiple data. Older processors only process a single data element per instruction. SSE enables the instruction to handle multiple data elements. It's used in intensive applications, such as 3D graphics, for faster processing.

SSE is designed to replace MMX™ Technology. It expanded over the generations of Intel® Processors to include SSE2, SSE3/SSE3S, and SSE4. Each iteration has brought new instructions and increased performance.

Streaming SIMD Extensions 2 (SSE2)

SSE2 extends the MMX Technology and SSE technology with the addition of 144 instructions that deliver performance increases across a broad range of applications. The SIMD integer instructions introduced with MMX technology are extended from 64 to 128 bits. This doubles the effective execution rate of SIMD integer type operations.

Double-precision floating point SIMD instructions allow simultaneous execution of two floating-point operations in the SIMD format. This support for double-precision operations helps accelerate content creation, financial, engineering, and scientific applications.

Original SSE instructions are enhanced to support a flexible and higher dynamic range of computational power. This is done by supporting arithmetic operations on multiple data types. Examples include double words and quad words. SSE2 instructions allow software developers maximum flexibility. They can implement algorithms and provide performance enhancements when running software such as MPEG-2, MP3, and 3D graphics.

Streaming SIMD Extensions 3 (SSE3)

The launch of 90 nm process-based Intel® Pentium® 4 Processor introduces the Streaming SIMD Extensions 3 (SSE3), which includes 13 more SIMD instructions than SSE2. The 13 new instructions are primarily designed to improve thread synchronization and specific application areas such as media and gaming.

Streaming SIMD Extensions 4 (SSE4)

SSE4 consists of 54 instructions. A subset consisting of 47 instructions, referred to as SSE4.1 in Intel documentation, is available in Penryn. SSE4.2, a second subset consisting of the seven remaining instructions, is first available in the Nehalem-based Intel® Core™ i7 Processor. Intel credits feedback from developers in the development of the instruction set.

Intel® Advanced Vector Extensions (Intel® AVX)

Intel® AVX is 256 bit instruction set extension to Intel® SSE designed for applications that are Floating Point (FP) intensive. Intel AVX improves performance due to wider vectors, new extensible syntax, and rich functionality. Intel AVX2 was released in 2013, extending vector processing capability across floating-point and integer data domains. This results in higher performance and more efficient data management across a wide range of applications. Examples are image and audio/video processing, scientific simulations, financial analytics, and 3D modeling and analysis.

Intel® Advanced Vector Extensions 512 (Intel® AVX-512)

The Intel® AVX-512 enables processing of twice the number of data elements that IntelAVX/AVX2 can process with a single instruction and four times the capabilities of Intel SSE. Intel AVX-512 instructions are important because they open up higher performance capabilities for the most demanding computational tasks. Intel AVX-512 instructions offer the highest degree of compiler support in the design of the instruction capabilities.