SIMD
Single Instruction, Multiple Data の略。1つの命令で複数のデータ要素に対して同時に同じ演算を行う並列処理方式。 #simd
仕組み
通常のスカラー演算は「1命令で1データ」を処理するのに対し、SIMDは専用のベクトルレジスタを使い、まとめて複数データを処理する。例えば256bitのベクトルレジスタなら、32bit浮動小数点数8個や16bit整数16個を一度に格納・演算できる。
用途
画像処理・科学技術計算・マルチメディア処理など、大量データに同じ処理を繰り返すデータ並列なワークロードで大きな性能向上をもたらす。
主な実装
- x86: SSE (Streaming SIMD Extensions) / AVX
- ARM: NEON
Apache Arrowは連続したメモリレイアウトのカラムナーフォーマットのため、SIMDによるベクトル化演算と相性が良い。またProject PanamaのVector APIは、SIMD命令を活用したベクトル演算をJavaから扱うためのAPI。
出典
- Single Instruction, Multiple Data (SIMD) in .NET | Medium
- SIMD: Definition, Techniques & Examples | StudySmarter
- What Is Single Instruction, Multiple Data (SIMD)? | ITU Online