「OpenMPでSIMDを有効にする」の版間の差分
提供: C言語入門
(ページの作成:「OpenMP 4.0で導入された主要な機能の1つは、ベクトル化/SIMD です。 '''読み方''' ;SIMD:えすあいえむでぃ ;Single Instruction Multiple...」) |
(相違点なし)
|
2016年1月21日 (木) 00:58時点における版
OpenMP 4.0で導入された主要な機能の1つは、ベクトル化/SIMD です。
読み方
- SIMD
- えすあいえむでぃ
- Single Instruction Multiple Data
- しんぐる いんすとらくしょん まるちぷる でーた
概要
OpenMP 4.0から、C言語やC++言語のプログラムをプラグマを用いて、明示的にSIMDに変換するように指示できます。
ベクトル化とは
ベクトル命令化 は、コンパイル時にループをベクトル演算命令に変換することです。
配列(ベクトル)をループで1つ1つ計算するようなコードを、ベクトル演算に変換して高速化できる場合があります。
SIMD(ベクトル演算)とは
SIMD (Single Instruction Multiple Data) とは、命令1つで、複数のデータ列を処理します。この演算は、パック演算やベクトル演算と呼ばれています。
ソースコード
simd construct は、「ループがSIMD ループに変換できること」を示すために、ループに対して適用できます。
#pragma omp simd for-loops
loop SIMD construct は、SIMD命令を使用して、並列に実行できるループを明示します。
#pragma omp for simd for-loop
コンパイル
gcc5 -fopenmp ...