2016-09-28 2 views

答えて

1

OpenGL仕様では、nVidia固有の実装の詳細であるワープについては何も言及していません。

OpenGLの用語では、シェーダの呼び出しは、ワークグループに分割されています。ワークグループ内のシェーダ呼び出しの数は、シェーダ内のlayout(local_size_x = X​, local_size_y = Y​, local_size_z = Z​) in;宣言によって指定されます。ワークグループの数はglDispatchCompute呼び出しで指定されています。それらがCUDAワープにマッピングされる方法は、実装詳細です。これはユーザとして透過的です。

+0

パフォーマンスに関しては、これは本当に透過的ではありません。ワープ分割の変更により、共有メモリアクセスがNVIDIAおよびAMDハードウェアで最大32倍遅くなる可能性があります。 –

+0

@HuazuoGao:はい、そうかもしれません。しかし、OpenGL仕様では、そのことについてあなたに知らせていません。仕様は*抽象*です。 –

+0

@HuazuoGao:真実ですが、実装が最も効率的な方法でハードウェアリソースを割り当てると仮定することは合理的です。正確なthread-id↔ワープマッピングは本当に気にせず、浪費されていないことに注意してください。 – ybungalobill

関連する問題