4

私はAVXプログラミングリファレンスを見ています。新しいHaswellの指示には、待望の「収集」ロードが含まれています。ただし、インデックス付けされたデータ項目の配置制限が何であるかを理解できません。リファレンスのセクション2.5「メモリアライメント」は、VGATHER*表2.4または2.5のいずれかにさまざまな命令をリストする必要があるようです...しかし、そうではありません。

背景:収集命令でサポートされているデータサイズは4バイトと8バイトですが、私のアプリケーションは、隣接する16ビットデータ値のペアを収集してDWORDSにロードすることでメリットが得られる可能性があります。2バイトスケールの奇数インデックスは2バイトに整列された4バイトのロードを生成し、これが失敗するか、そうでなければ意図したとおりに機能しないかはマニュアルからは明らかではありません(私はすべてを考えると運が悪いと思いますアラインされていないアクセスをサポートする命令には、「U」が含まれているようです)。

4

1 に答える 1

5

AVX2について聞いたのはこれが初めてです。しかし、メモリアライメントの制限は、新しいVEXコーディングスキームを使用したSandyBridgeでのAVXの現在の実装と変わらないと思います。VMOVつまり、名前にで整列された命令を明示的に使用しない限り、整列は必要ありませんA。ほとんどの命令は、任意のバイト粒度アラインメントでのアクセスを許可します。

実際、これを正確に説明しているインテル(R)Advanced VectorExtensionsプログラミングリファレンスの35ページのセクション2.5を参照してください。

于 2011-07-01T14:54:49.543 に答える