Auto-Vectorization of Interleaved Data for SIMD
Abstruct
単一命令複数データ(SIMD)モデルのほとんどの実装では
(SIMD)モデルのほとんどの実装では、データ要素をベクトルレジスタに
ベクトルレジスタに格納する必要があります。孤立したベクトル要素に対する演算は直接サポートされておらず
演算は直接サポートされておらず、明示的なデータ再編成操作が必要です。不連続なデータ、特にインターリーブされたデータに対する計算は、重要なアプリケーションに登場します。
データが適切に再編成されれば、SIMD命令の恩恵を受けることができます。そのため、このような計算を効率的にベクトル化することは、プログラマーにとってもベクトル化コンパイラにとっても意欲的な課題です。
本論文では、相互作用がある場合でも効果的なベクトル化をサポートする
本論文では、インターリーブされたデータの再編成を容易にするために、2の累乗である一定のストライドを持つデータの存在下で効果的なベクトル化をサポートする自動コンパイルスキームを示す。
また、このベクトル化手法が、主要なSIMDアーキテクチャにどのように適用されるかを示し、実験結果を示します。
SIMDアーキテクチャへの適用方法を示し、幅広い主要カーネルでの実験結果を紹介します。
幅広い主要カーネルで実験を行い、インターリーブのレベル(ストライド)に応じて実行時間を最大3.7
インターリーブレベル(ストライド)を8まで上げた場合、実行時間は最大3.7まで短縮されました。
VF(まとめる単位)を変えられるような普通のSIMDに対しての論文でかつ
2005年とかだったのであんまり関係なかった、