インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
データレイアウトごとに異なるコンテナー型ではなく、SDLT は layout 名前空間の型を n_container のテンプレート引数として使用します。
利用可能なレイアウトは layout 名前空間で定義されており、次の表はそれらをまとめたものです。
レイアウト | 説明 |
---|---|
|
配列構造体 (SoA): プリミティブの各データメンバーが N 次元配列を保持しています。配列は、連続するバッファーに配置されます。テンプレート引数 AlignOnColumnIndexT は、キャッシュライン境界でアライメントすべき行次元の列を識別します。各行の AlignOnColumnIndexT は、キャッシュライン境界でアライメントされます。 |
|
行ごとの配列構造体 (SoA): プリミティブの各データメンバーが連続して配置された行次元の 1 次元配列 (SoA1D) を保持しています。各行の AlignOnColumnIndexT は、キャッシュライン境界でアライメントされます。これらの SoA1D は残りの次元に合わせて連続して配置され、行の範囲をサイズとする効率良い配列構造体配列になります。配列構造体配列は、行の範囲が fixed<NumberT> の場合に特に効率的です。 注: コンパイル時に行のサイズが不明な場合は、fixed<Number> の次元を追加し、行を fixed<NumberT> で分割することを検討してみてください。 |
|
構造体によりアクセスされる構造体配列 (AoS): プリミティブは、ネイティブ形式でメモリーに連続して配置され、構造体またはメンバーによってアクセスされます。入れ子の構造体は、入れ子構造に従って構造体メンバーにアクセスします。 |
|
ストライドによりアクセスされる構造体配列 (AoS): プリミティブは、ネイティブ形式でメモリーに連続して配置され、ビルトイン型へのポインターによりストライドを使用してアクセスされます。aos_by_struct がベクトル化されない場合に役立ちます。 |
クラスは空で、特定のレイアウト向けにコンテナーを特殊化するためのものです。