コンテンツにスキップ

ストリーミングSIMD拡張命令

出典: フリー百科事典『ウィキペディア(Wikipedia)』
FMA3から転送)

SIMD: Streaming SIMD Extensions:SSECPUSIMD Advanced Vector Extensions (AVX)  Advanced Matrix Extensions (AMX) 

[]


SSEx868128SIMDAMDK6-2SIMD3DNow!Pentium III432使SSE

Core DuoCPUK8AMDCPU64128212864[ 1]MMXAMD3DNow!128使RISCCPUSIMD1281Core/AMD K101281SSE

SIMD: Internet Streaming SIMD ExtensionsISSE [1]SSE

SSESSE2SSE3SSSE3Supplemental/SSE3SSE4SSE

沿[]


19992: SSEPentium III
20003: SSECeleron

200011: SSE2Pentium 4
20025: SSE2Celeron

20033: SSE2Pentium M

20041: SSE2Celeron M

20042: SSE3Pentium 4
20046: SSE3Celeron D

20061: SSE3Intel Core

20066: SSSE3Xeon 5100
20067: SSSE3Intel Core 2

20078: AMDSSE5

200711: SSE4.1Intel Core 2

200711: AMDSSE4aPhenom

200811: SSE4.2Intel Core i7

20111: AVXIntel Core i7

201110: AMDFMAAMD FX

20136: AVX2Intel Core i7

20166: AVX-512Intel Xeon Phi

20231: AMXIntel Xeon SP

SSE[]


Pentium III70[2]Pentium IIIKatmaiKNI (Katmai New Instructions) [3]MMX2 [4]Celeron Coppermine-128k SSE[5][6]

AMDSIMD3DNow! ProfessionalSSE[7][8]

SSE2[]


SSE2SSE144[2]64MMX128

SSE2Pentium 4[9]AMDAMD64x87SSE/SSE2SSESSE2

SSE3[]


SSE3SSE213[2]CPU

SSE3PNI (Prescott New Instructions) [2]Pentium 4Prescott2004 -

SSSE3[]


SSSE3 (Supplemental SSE3) SSE332[2] CoreIntel Core 2 (Conroe) / Intel Xeon (Woodcrest) 

SSSE3MNI (Merom New Instructions; Tejas New Instructions) [2]SSE4

SSE4[]

SSE4.1[]


45nmCore 2Penryn47

SSE4.2[]


Nehalem1Intel Core i7SSE 4.2

String & Text New Instructions (STTNI)
PCMPESTRI

PCMPESTRM

PCMPISTRI

PCMPISTRM

PCMPGTQ

Application Targeted Accelerators (ATA)
CRC-32

POPCNT - 

SSE4a[]


AMD Phenom 4SSE4

FMA[]


x86[10]Fused Multiply-Add (FMA)2007AMDSSE52008AVX[11]2009FMA4 (FMA4) 3 (FMA3) [11]20095AMDSSE5AVXFMA4FMAFMA4FMA3FMAAMDZenFMA4FMA[12]

FMA±(A×B)±C/14

MADD

A×BC

MSUB

A×BC

NMADD

(A×B)C

NMSUB

(A×B)C

//MADDSUB1,3,5...MADD0,2,4...MSUB

FMA1FLOPSAMDBulldozer2128FMAHaswell2256FMA[13]

FMA4[]


2008FMA[11]43AMDBulldozerAMDZen[12]

FMA3[]


2009使FMAFMA instruction set[14]4313FMAHaswellAMDBulldozerPiledriverAMDSSE5FMA3[15]

mm256_fmadd_psIntel CPU116FMA[16][17] (256 [bit/inst.] ÷ 32 [bit/fp32FMA] ÷ 0.5 [CPI=cycle/inst.][18])3GHz1 48 GMAC/s (=96 GFLOPS) : FLOPS#

FMA4退1Ivy BridgeAMDBulldozermov退

AVX2AVX2CPUID[19]FMA3AMDPiledriverAVX2

Intel AVX[]


MMX/SSESIMDIntel Advanced Vector ExtensionsSandy Bridge2011 -[20][21]SSE2256184VEX3 or 4退128SSE使AVX256使SIMD

SSE128AVX256128SSE[21]SSEAVX256AVXSSESSEAVX128退256VZEROUPPER/VZEROALLAVX128SSEVEX使VEX128AVX128AVX

Sandy BridgeSSE128使2256[20]Nehalem2

AMDBulldozerSSE5AMD FXAVX[11]2561282使[22][23]SSE

Intel AVX2[]


AVX2AVX256

[]


256 (add, sub, mul, madd, abs, sad, sign)eq, gt (ave, min, max) (and, or, xor, andnot)  (sll, sra, srl, alignr) (convert)/swizzle (permute, shuffle, broadcast, insert, blend, unpack, pack, extract)  (stream load, masked load/store) (movemask) 

gather

[]


Haswell[24]AMDExcavatorAVX2[25]SIMDZen+128bitAVX2Zen2256bit

Intel CPUint8VNNI"Vec Mul""Vec ALU"
表. Intel CPU AVX2におけるint8積和演算 (pseudo VNNI) 実装
μarch 実行ユニット
VPMADDUBSW, VPMADDWD VPADDD
Haswell "SIMD Misc" x1[26] "SIMD ALU" x2[27] (Port 1, 5)
Skylake "Vec Mul" x2[28] (Port 0, 1) "Vec ALU" x3[29] (Port 0, 1, 5)
Sunny Cove "Vec Mul" x2[30] "Vec ALU" x3[31] (Port 0, 1, 5)
Golden Cove英語版 "Vec Mul/FMA" x2[32] (Port 0, 1) "Vec ALU" x3[33] (Port 0, 1, 5)
Gracemont英語版

AVX2 VNNI[編集]


Intel AVX2 Vector Neural Network Instructions (AVX2 VNNI) [34]AVX-512AVX-512 VNNIAVX2 () [int8 | int16][ | ] 4vpdp[bu|ws]sd[|s]/intrinsics[XMM (_mm_) | YMM (_mm256_) ] AVX512 VNNI_avx16

Intel CPU12Intel CoreAlder Lake[35]int8FMA256bit4[36][37]FMA4

Intel AVX-512[]


ZMM512[38]1632

AVX512F, AVX512CD, AVX512DQ, AVX512PF, AVX512ER, AVX512VL, AVX512BW, AVX512IFMA, AVX512VBMI, AVX512VBMI2, AVX512VAES, AVX512BITALG, AVX5124FMAPS, AVX512VPCLMULQDQ, AVX512GFNI, AVX512_VNNI, AVX5124VNNIW, AVX512VPOPCNTDQ, AVX512_BF16AVX-512

沿[]


20162Xeon Phi1Xeon PhiAVX-512Intel IMCI[39]

20171XeonSPSkylake[40]

2018AVX-512 VNNI(AVX-512 Vector Neural Network Instructions)Intel, IEEE Hot Chips 30 Symposium (HCS) 20182Xeon SPCascade Lake

2019Intel10nmCPU10Intel CoreIce Lake AVX-512 

20203Xeon SPCooper Lakebfloat16AVX512_BF16

2021IntelCPUAVX-512Intel Xeon SP12Intel CoreAlder LakeAVX10.2AVX2退AVX2VNNI

2022IntelAMDZen 4AVX-512[41]

Alder Lake[]


12Intel CoreAlder LakeAVX-512Alder Lake2PAVX-512GracemontEBIOSEAVX-512[42][43]IntelAlder LakeAVX-512[44]

AVX-512 VNNI[]


AVX-512 Vector Neural Network instructions (AVX-512 VNNI) int8, int16AVX-512[45]AVXINT8 VPMADDUBSW/VPMADDWD/VPADDD 3AVX248VNNI VPDPBUSD [46]

Intel AVX10[]


20237 AVX-512  AVX10 AVX10  AVX2  AVX-512 converged vector ISA[47]AVX-512AVX10AVX10.1AVX10.2

AVX10.1[]


AVX10.1PIntel Xeon 6Granite Rapids XeonPAVX-512[48][49]

AVX10.2[]


AVX10.2ARMScalable Vector Extension128, 256, 512PECPUAVX-512EE512AVX2退[50]

Intel AMX[]


Intel Advanced Matrix Extensions (AMX) 2020AVX-512 VNNI21

20231104Intel Xeon SPSapphire RapidsAMX-TILE8bitAMX-INT8bfloat16AMX-BF16Sapphire RapidsTMULTile Matrix Multiply

1/[51]

Intel AMX-INT8: 2048 (=16 * 64 * 2)

Intel AMX-BF16: 1024 (=16 * 32 * 2)

AVX-512INT8256op/cycle8

Intel Xeon 6Granite Rapids AMX-FP16[52]


脚注[編集]

注釈[編集]

  1. ^ SIMD整数演算に関してはPentium M、Core DuoやK8では64ビット幅の演算器を2つ持つため、コア全体でのSIMD整数演算のスループットは128ビット/クロックであった。

出典[編集]



(一)^  (200534). +HT. PC Watch. PC. 20191222

(二)^ abcdef (2006104). SSE4Intel CPU. PC Watch. Weekly. 20191222

(三)^  (1998108). MPEG-2Katmai. PC Watch. Weekly. 20191222

(四)^  (199798). SGIWintel?. PC Watch. Weekly. 20191222

(五)^ IntelCoppermine-128kCeleron 600/566MHz. PC Watch (2000329). 20191222

(六)^  (2000331). Coppermine-128K 600/533A MHz. PC Watch. AKIBA PC Hotline. 20191222

(七)^  (2001831). 179820824. PC Watch. PC Watch. 20191222

(八)^  (20011010). Pentium 4AMD Athlon XP. PC Watch. AKIBA PC Hotline. 20191222

(九)^ . SSE2. PC Watch. 20191222

(十)^ AMDBulldozerHPPA-RISCIBMPowerPowerPCItanium

(11)^ abcd. AMDAVXBulldozer. Weekly. 20191118

(12)^ abGDC 2017AMDRyzen - 4Gamer.net. (201739). https://www.4gamer.net/games/300/G030061/20170308070/ 2017310 

(13)^ Hisa Ando (2012103). HPCHaswell() -256bitFMA2. . https://news.mynavi.jp/techplus/article/20121003-idf_haswell_hpc_01/ 20191118 

(14)^ "CHAPTER 6 INSTRUCTION SET REFERENCE - FMA ... FMA INSTRUCTION SET ... Performs a set of SIMD multiply-add computation on packed" Intel. Intel® Architecture Instruction Set Extensions Programming Reference. pp.6_1-6_2.

(15)^ Junya Suzuki (2007831). AMD3FMASSE5. . https://news.mynavi.jp/article/20070831-a002/ 20191118 

(16)^ "to sustain Haswells CPU peak (e.g., 16 multiply-adds per cycle)" . (2016). What You Must Know about Memory, Caches, and Shared Memory. , .

(17)^ "Intel® AVX 2.0 delivers 16 double precision and 32 single precision floating point operations per second per clock cycle within the 256-bit vectors, with up to two 256-bit fused-multiply add (FMA) units." Intel. Intel® Advanced Vector Extensions 512. 2022-04-04.

(18)^ "__m256 _mm256_fmadd_ps ... Throughput (CPI) ... Haswell ... 0.5" Intel Intrinsics Guide. 2022-04-03.

(19)^ "12 FMA ... 28 AVX" Intel. (2021). Intel® Architecture Instruction Set Extensions and Future Features. p.1_27.

(20)^ ab (2010917). Sandy Bridge. PC Watch. Weekly. 20191222

(21)^ ab2011-01-03 (). Sandy Bridge. 4Gamer.net. 20191222

(22)^  (20101012). AMDBulldozerCPUFX10. 4Gamer.net. 20191222

(23)^  (201132). 8CPUBulldozer. PC Watch. Weekly. 20191222

(24)^  (2012924). CPU HaswellCPU . ASCII.jp. . 20191118

(25)^ AMDCarrizo6AMD A  - PC Watch. (201563). https://pc.watch.impress.co.jp/docs/news/event/705132.html 20151215 

(26)^ "Haswell ... Execution Unit ... SIMD Misc ... # of Ports ... 1 ... Instructions ... (v)pmadd*" p.32 of Intel. (2017). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-037 July 2017. iSUS.

(27)^ "Haswell ... Execution Unit ... SIMD ALU ... # of Ports ... 2 ... Instructions ... (v)padd*" p.32 of Intel. (2017). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-037 July 2017. iSUS.

(28)^ "Skylake Client Microarchitecture Execution Units ... Execution Unit ... Vec Mul ... # of Unit ... 2 ... Instructions ... (v)pmadd*" p.2_27 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(29)^ "Skylake Client Microarchitecture Execution Units ... Execution Unit ... Vec ALU ... # of Unit ... 3 ... Instructions ... (v)paddb/w/d/q" p.2_27 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(30)^ "Ice Lake Client Microarchitecture Execution Units ... Execution Unit ... Vec Mul ... # of Unit ... 2 ... Instructions ... (v)pmadd*" p.2_13 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(31)^ "Ice Lake Client Microarchitecture Execution Units ... Execution Unit ... Vec ALU ... # of Unit ... 3 ... Instructions ... (v)paddb/w/d/q" p.2_13 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(32)^ "Golden Cove Microarchitecture Execution Units ... Execution Unit ... Vec Mul/FMA ... # of Unit ... 2x256-bit (1 or 2)x512-bit ... Instructions ... (v)pmadd*" p.2_9 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(33)^ "Golden Cove Microarchitecture Execution Units ... Execution Unit ... Vec ALU ... # of Unit ... 3x256-bit ... Instructions ... (v)paddb/w/d/q" p.2_8 of Intel. (2022). Intel® 64 and IA-32 Architectures Optimization Reference Manual. Order Number: 248966-045 February 2022.

(34)^ "Intel® AVX2 Vector Neural Network Instructions (AVX2 VNNI) Vector instructions for deep learning extension for AVX2." Intel. Core Processors Datasheet, Volume 1 of 2. 2022-04-04.

(35)^ "Intel® SDP for Desktop Based on Alder Lake S ... Supported Technologies ... Intel® AVX2 VNNI" Intel. Core Processors Datasheet, Volume 1 of 2. 2022-04-04.

(36)^ "VPDPBUSD_YMMi32_YMMu32_YMMu32 ... throughput ... 0.5 ... Latency ... 5" L.2266 of Intel. (2022). Intel® Processors and Processor Cores based on Golden Cove Microarchitecture. March 2022 Revision 2.0.

(37)^ _mm_dpbusds_epi32XMM128bit CPI0.5Intel Intrinsics Guide

(38)^  (201921). Intel10nmCPUSunny CoveAVX-512. PC Watch. Weekly. 20191222

(39)^ ® Xeon Phi  7120P (16GB1.238 GHz61) -  | . Intel. 2024312

(40)^ Intel® Architecture Instruction Set Extensions Programming Reference (pdf) (). p. 12(1-2). 20184302017119 AVX512F, AVX512CD

(41)^ Zen 4AVX-512. PC Watch (201921). 2022617

(42)^ Intel Architecture Day 2021: Alder Lake, Golden Cove, and Gracemont Detailed (). AnandTech (2021819). 2021825

(43)^ Alcorn, Paul (2021819). Intel Architecture Day 2021: Alder Lake Chips, Golden Cove and Gracemont Cores (). Tom's Hardware. 2021821

(44)^ Alcorn, Paul (202232). Intel Nukes Alder Lake's AVX-512 Support, Now Fuses It Off in Silicon (). Tom's Hardware. 202237

(45)^ "a new Intel AVX-512 extension called Intel DL Boost, which contains the Vector Neural Network instruction (VNNI). Designed to improve the throughput of integer linear algebra" Intel. Code Sample: Intel® AVX512-Deep Learning Boost: Intrinsic Functions.

(46)^ "the new instruction in VNNI VPDPBUSD replaces the three separate FMA instructions VPMADDUBSW, VPMADDWD, and VPADDD." Intel. Code Sample: Intel® AVX512-Deep Learning Boost: Intrinsic Functions.

(47)^ The Converged Vector ISA: Intel® Advanced Vector Extensions 10 Technical Paper. Intel. 202458

(48)^ Bonshor, Gavin. Intel Unveils AVX10 and APX Instruction Sets: Unifying AVX-512 For Hybrid Architectures. AnandTech. 202454

(49)^ . IntelP/EAVX10. PC Watch. 202454

(50)^ The Converged Vector ISA: Intel® Advanced Vector Extensions 10

(51)^ Accelerate Artificial Intelligence (AI) Workloads with Intel Advanced Matrix Extensions (Intel AMX).  Intel. 2023413

(52)^   ® Xeon® . Intel. 2024525

関連項目[編集]