Skip to content
Search

SIMD

lastmod 2022-07-01created 2015-12-0416 edits

SIMD (Single Instruction Multiple Data) is a type of parallel processor that computes multiple values at the same time with a single instruction.

It is widely used in vector processors and is often used in multimedia fields such as video game consoles and graphics cards. On CPUs, it has been applied in technologies such as Intel's MMX and Streaming SIMD Extensions (SSE), and AMD's 3DNow!.

x86 instruction sets

List of all the instruction sets headers that need to be included to use intrinsect functions with GCC and Visual Studio (and Intel compiler for supported instruction set).

  • x86intrin.h: x86 instructions
  • mmintrin.h: MMX (Pentium MMX!)
  • mm3dnow.h: 3dnow! (K6-2) (deprecated)
  • xmmintrin.h: SSE + MMX (Pentium 3, Athlon XP)
  • emmintrin.h: SSE2 + SSE + MMX (Pentiuem 4, Ahtlon 64)
  • pmmintrin.h: SSE3 + SSE2 + SSE + MMX (Pentium 4 Prescott, Ahtlon 64 San Diego)
  • tmmintrin.h: SSSE3 + SSE3 + SSE2 + SSE + MMX (Core 2, Bulldozer)
  • popcntintrin.h: POPCNT (Core i7, Phenom subset of SSE4.2 and SSE4A)
  • ammintrin.h: SSE4A + SSE3 + SSE2 + SSE + MMX (Phenom)
  • smmintrin.h: SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE + MMX (Core i7, Bulldozer)
  • nmmintrin.h: SSE4_2 + SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE + MMX (Core i7, Bulldozer)
  • wmmintrin.h: AES (Core i7 Westmere, Bulldozer)
  • immintrin.h: AVX, SSE4_2 + SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE + MMX (Core i7 Sandy Bridge, Bulldozer)

Libraries

See also

Favorite site

Programming

References


  1. SIMD_Parallel_Programming_-_StonzeBlog.pdf ↩

  2. Www.kernel.org_-_ps3-linux-docs.zip (see /CellProgrammingTutorial/BasicsOfSIMDProgramming.html) ↩

author Zer0 sitemap