CUDAには、、、、__ballot()
および一連のレーンマスク関数があり、ワープ内のすべてのレーン(通常は32のサイズ)でワープ投票操作を実行します。1つの波面内で同じ操作を実行するためにOpenCLに実装されたそのような機能があるのだろうかと思います。そのような関数がない場合は、プロジェクトで使用するインライン関数として実装する必要があるかもしれません。__any()
__all()
__popc()
1344 次
2 に答える
3
OpenCL v。1.1仕様のセクション6.11「組み込み関数」によると、答えはノーだと思います。
ただし、NVIDIA GPUでは、おそらくインラインPTXを使用してこれらを実装できます(または、少なくともこのブロガーはインラインPTXを使用できました)。
于 2012-07-11T23:36:30.850 に答える
2
実際にOpenCLサブグループをチェックしてください。sub_group_all()
それらは、sub_group_any()
他の興味深いもののようないくつかのクロスレーン機能を定義します。
サブグループは比較的新しい生き物であり、誰がそれをサポートしているかはわかりません。Intel GPUの実装(実際には拡張機能)には、レーンを(レジスタファイル内で)並べ替えたり、明示的なブロックの書き込みと読み取りを行ったりするための、さらに興味深いシャッフル機能がいくつかあります。AMDはサブグループもサポートしていると思いますが、NVidiaについてはよくわかりません。
于 2016-02-29T00:51:01.733 に答える