私は最近、CUDAの__byte_perm組み込み関数に相当するAMDを発見しました。 amdgcn_ds_swizzle
(または、少なくとも私はそのバイト置換関数と同等だと思います)。私の問題はこれです:CUDAのバイトパーマは2つの符号なし32ビット整数を取り込み、セレクタ引数の値に基づいてそれを置換します(16進値として供給されます)。しかし、AMDのswizzle関数は、単一の符号なし32ビット整数と、「パターン」という名前の1つのintを取り入れます。 AMDのSwizzle組み込み関数をどのように活用すればよいですか?AMD HCC Swizzle組み込み関数
答えて
ds_swizzleおよび__byte_permは少し異なります。 1つはレーン全体でレジスタ全体を置換し、後で2つの32ビットregから4バイトを置換します。
AMDのds_swizzle_b32 GCN命令は実際には他のレーンと値を入れ替えています。 32ビットレジスタは、読み込みたいレーンとそれを配置する32ビットレジスタに指定します。また、これらをスワップする方法を指定するハードコード値もあります。 ds_swizzle_b32の大きな説明は、ユーザー3528438が指摘しているようにhereです。
__byte_permは、他のレーンとデータをスワップしません。これは、2つの32ビットレジスタから4バイトを収集し、それをレジスタに格納するだけです。クロスレーンのトラフィックはありません。
私はAMD GCNハードウェアで「バイト置換」を行う方法があると思います。その指示はv_perm_b32です。 (12-152ページを参照してください)基本的に2つの指定された32ビットレジスタから4バイトを選択します。
この情報をありがとうございます。 v_perm_b32関数は、HCCコンパイラでは実装されていないようです。生のアセンブリ命令を使用して手動で実装する方法はありますか?私は "asm"関数を使ってデバイスコードの中で "v_perm_b32"命令を呼び出すことを考えていましたが、明らかにこれはHCCでは違法です。 – ligosan
申し訳ありませんが、Windows Visual Studioのサポートがないため、HCCコンパイラについて詳しくは分かりません。私はC#(__asm4GCN)の可能性を知っていますが、それはおそらくあなたが探しているものではありません。 HCCやOpenCLがインラインasmをサポートしていれば素晴らしいだろう!ちなみに、おそらくv_perm_b32サポートをHCCコンパイラに追加するように要求することができます。 (またはより良いasmサポート) – Sunsetquest
- 1. 組み込み関数/組み込み関数のテスト
- 2. 組み込み関数IIF
- 3. AMD FMA 4組み込み関数のリファレンスはどこにありますか?
- 4. 組み込み用のC/C++組み込み関数VMOVD
- 5. 組み込み関数の変更
- 6. CythonのAES-NI組み込み関数?
- 7. 再定義パイソン組み込み関数
- 8. Netbeans組み込みPHP関数のコードハイライト
- 9. bash組み込み関数bashソースコード
- 10. SSE3組み込み関数:山車
- 11. システム組み込み関数のエラー
- 12. OpenGLのGPU組み込み関数
- 13. 組み込み関数の再定義
- 14. linux端末の組み込み関数
- 15. テーブルロードVBA vs組み込み関数
- 16. Delphi組み込みコールバック関数
- 17. コードビルドプロセスと組み込み関数
- 18. 組み込み関数のPHPソースコード
- 19. postgresql組み込み関数return
- 20. Racketのプリミティブと組み込み関数
- 21. python組み込み関数の原理?
- 22. TBBとSSE2の組み込み関数を組み合せる
- 23. Octaveで組み込み関数をオーバーロードするときの組み込み関数の不一致
- 24. CUDAタイプと同等の組み込み関数は、組み込み関数の__double2loint、__double2hiintと__hiloint2double
- 25. 組み込み関数が組み込まれていない並べ替え
- 26. カスタムGoogle App関数での組み込み関数の使用
- 27. Clojure組み込み関数の関数定義:def vs defn
- 28. 関数名から組み込み関数を取得
- 29. Googleシートのカスタム関数の組み込み関数
- 30. 組み込み関数内の関数へのアクセス
あなたはマニュアルを読んでいますか? – user3528438
[This](http://scchan.github.io/hcc/hc_8hpp.html)は私が持っている唯一のマニュアルです。それはあまり情報を与えません。私はすでにインターネット上のすべてを検索し、残念ながら(私が間違った場所で探していない限り)何も見つけていない。だから私は私の最後の手段としてstackoverflowになっている。 – ligosan
http://gpuopen.com/amd-gcn-assembly-cross-lane-operations/ – user3528438