SIMD
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/29 13:19 UTC 版)
例
マイクロプロセッサ
命令拡張
- x86のMMX・3DNow!・ストリーミングSIMD拡張命令 (SSE)
- x64のAVX
- PowerPCのAltiVec (VMX)
- ARMのNEON, SVE2[6](ARMアーキテクチャ#SIMD)
- SPARCのVIS (en:Visual Instruction Set)
- MIPSのMIPS-3D (en:MIPS-3D)・MDMX (en:MDMX)
- PA-RISCの MAX (en:Multimedia Acceleration eXtensions)
- Emotion EngineのCPUコア
演算装置
演算装置自体がSIMD型のもの
GPU
GPUはSIMD型がほとんどである。ただし、GPGPU対応が進むにつれて、1プロセッサで複数のデータを扱うSIMDだけではなく、複数のプロセッサを用いて実現されるハードウェアマルチスレッドに対して同一の命令を発行することで複数のデータを同時に処理するSIMTの併用が主流となっている。
もともとGPUはXYZW/RGBA(各成分は32ビット単精度浮動小数点数)を同時に演算する128ビットの4-way SIMDが主流だったが、1サイクルで1回の単精度浮動小数点数もしくは32ビット整数の融合積和演算 (FMA) を行なうスカラー型プロセッサを複数束ねるSIMTが主流となった。しかしその後、単精度演算器にて半精度浮動小数点数演算を2回行なう2-way SIMDや、8ビット整数演算を4回行なう4-way SIMDをサポートするGPUも出現し、SIMDとSIMTの併用が始まっている[7]。
- NVIDIA製GPUでは32個のハードウェアスレッド集合をWarpと呼ぶ。
- AMD Radeon、AMD FireProシリーズなど
- AMD製GPUでは64個のハードウェアスレッド集合をWavefrontと呼ぶ。
- イマジネーションテクノロジーズのPowerVR
- PowerVR Series5では4-way、PowerVR Series6では16-wayのベクタユニット[8]
物理演算プロセッサ
3Dゲームに必要な物理演算を高速化するため、SIMDを利用。
- PhysX(用のチップ)
汎用アクセラレータ
PCI Express接続の汎用SIMDアクセラレータ。倍精度の行列演算を高速に行う目的で、ワークステーション、スーパーコンピュータなどに搭載される。
- CSX600 - クリアスピードによるメニーコアSIMD演算ユニット
- SX-Aurora TSUBASA Vector Engine - NECのスパコンSX-Aurora TSUBASA搭載の演算ユニットをバラ売りしたもの。8コア、最大2.45TFLOPS[9]
注釈
出典
- ^ SIMD - MDN Web Docs Glossary: Definitions of Web-related terms | MDN
- ^ P.HAYES, JOHN (1978,1979). Computer Architecture and Organization. McGRAW-HILL INTERNATIONAL BOOK COMPANY. p. 211. ISBN 0-07-027363-4
- ^ 6 群「コンピュータ - 基礎理論とハードウェア」 - 5 編「コンピュータアーキテクチャ(II) 先進的」 - 4 章「ベクトルコンピュータ」 | 電子情報通信学会「知識ベース」
- ^ David A. Patterson and John L. Hennessy (2007). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. p. 596. ISBN 978-0-12-370606-5
- ^ SIMD(Single Instruction/Multiple Data)とは - IT用語辞典 e-Words
- ^ 株式会社インプレス (2021年3月31日). “Arm、10年ぶりの新アーキテクチャ「Armv9」。富岳のSVE改良版やコンフィデンシャルコンピューティング機能追加”. PC Watch. 2021年12月30日閲覧。
- ^ 【後藤弘茂のWeekly海外ニュース】NVIDIA次世代SoC「Xavier」は進化版DenverとVoltaを搭載 - PC Watch
- ^ 株式会社インプレス (2014年3月19日). “【後藤弘茂のWeekly海外ニュース】 スマートフォンのグラフィックスを加速する「PowerVR Series6 Rogue」”. PC Watch. 2021年12月29日閲覧。
- ^ NEC SX-Aurora TSUBASA Vector Engineの取り扱いを開始
- ^ Auto-Vectorizer in Visual Studio 2012 – Overview – Parallel Programming in Native Code
- ^ インテル® C++ コンパイラーのベクトル化ガイド - Compiler_AutoVectorization_Guide.pdf
- ^ Auto-Vectorization in LLVM — LLVM git documentation
- ^ OpenMP 4.0 を使用してプログラムで SIMD を有効にする | iSUS
- ^ .NET における数値 | Microsoft Docs
- SIMDのページへのリンク