SIMD
single instruction, multiple data
フリンの分類の一つ
1つの命令で複数のデータを並行処理する方式
gpt-5.icon
例:配列AとBの要素ごとの加算
C[i] = A[i] + B[i] を、複数の i に対して一括で処理する。
仕組み(CPU視点)
CPUはベクトルレジスタ(例:128/256/512bit)を持つ
1レジスタに複数のスカラー値(例:floatやint)を詰める
1命令でレジスタ内の全要素を同時演算
SIMDが効く条件
同一処理を大量のデータに適用できる
分岐(if)が少ない、またはマスクで処理可能
データが連続(アラインメントが良い)
https://ja.wikipedia.org/wiki/SIMD
https://qiita.com/saka1_p/items/72c7755086ec985cade6
https://www.atmarkit.co.jp/fcoding/articles/parallel/02/para02b.html
https://blog.miz-ar.info/2023/08/haskell-simd/
hs