2011-07-01 14 views
4

私はAVX programming referenceを見ています。 new Haswell instructionsには、待ち望まれている「収集」負荷が含まれています。しかし、インデックスされたデータ項目にどのような整列制限があるのか​​わかりません。参照のセクション2.5 "メモリアライメント"は、様々なVGATHER*命令を表2.4または2.5のいずれかに記載すべきであるようですが、そうではありません。新しいHaswell AVXの "ギャザー"命令の配置制限はありますか?

背景:命令のサポートされるデータサイズは4および8バイトですが、私のアプリケーションでは、隣接する16ビットのデータ値のペアをDWORDSに集めることで利益を得ることができます。 2バイトのスケールを持つ奇数のインデックスは、2バイトのアライメントされた4バイトのロードを生成します。マニュアルから、これが失敗するか、そうでなければ意図しない動作をするかどうかはわかりません(むしろ、アラインされていないアクセスをサポートする命令は、その中に「U」を有するように見える)。

答えて

5

初めてAVX2について聞いたことがあります。しかし、メモリアラインメントの制限は、新しいVEXコーディングスキームを持つSandy Bridge上のAVXの現在の実装と異なることはないと私は推測しています。私。明示的にアライメントVMOV命令を使用して名前にAを使用しない限り、アライメントは必要ありません。大部分の命令は、任意のバイト単位のアライメントでアクセスを許可します。

実際には、正確にこれを述べているIntel(R) Advanced Vector Extensions Programming Referenceの2.5節、35ページを参照してください。

関連する問題