私は現在OpenCLプロジェクトに取り組んでいます。なぜそれが再帰をサポートしないのだろうと思います。それは並列性に関連していますか?OpenCLが再帰をサポートしないのはなぜですか?
3
A
答えて
5
これはターゲットハードウェアに関連していると思います。再帰をサポートするには、特定のクラスのOpenCLデバイス(GPU)にはないいくつかのハードウェア機能が必要です。それらがなければ、コールスタックを維持し、間接的なコード分岐を行うことは実用的ではありません。 NVIDIAは同じ理由でCUDA対応ハードウェアすべてで再帰をサポートしていません。
3
OpenCLのGPUハードウェアではありません。 AMDは、再帰をサポートする将来の命令セットアーキテクチャ を策定しました。 GPUには多数のレジスタがあります(最大32K)。だから、 何を求めて取得するのに注意してください。 32Kレジスタのプッシュ/ポップは、再帰呼び出しのために高速にはなりません。
関連する問題
- 1. なぜPythonの再帰が返されないのですか?値なし
- 2. なぜこの再帰は遅いのですか?
- 3. mxmlがコンポーネントコンストラクタをサポートしないのはなぜですか?
- 4. OpenCLサブバッファは、なぜ重要ですか?
- 5. jQueryの新しいバージョンがこの再帰で動作しないのはなぜですか?
- 6. 再帰はいつ、なぜ反復よりもパフォーマンスが悪いのですか?
- 7. 私の再帰的な友人機能がVB6で動作しないのはなぜですか?
- 8. この再帰文が間違っているのはなぜですか?
- 9. 私の再帰関数が間違っているのはなぜですか?
- 10. この再帰プログラムはなぜ機能しますか?
- 11. この再帰関数はなぜ機能しますか?
- 12. リバースイテレータをサポートしていないのはなぜですか?
- 13. ErlangでオーバーラップUDPをサポートしないのはなぜですか?
- 14. メトロアプリケーションでMFCreateMediaSessionがサポートされないのはなぜですか?
- 15. CTEが再帰を経由しない
- 16. Pythonの再帰が機能しない
- 17. 再帰コードが正しく動作しないのはなぜですか? [閉じた!]
- 18. なぜ再帰呼び出しが明示的なreturn文なしでスタックからブレークするのですか?
- 19. Rally's Fetch APIは再帰的フェッチをサポートしていますか?
- 20. OracleのドライバがREAD_UNCOMMITTEDをサポートしていないのはなぜですか?
- 21. 特定のシナリオでスカラックが末尾再帰を最適化できないのはなぜですか?
- 22. djangoが接続プールをサポートしていないのはなぜですか?
- 23. JSONPathが親をサポートしていないのはなぜですか?
- 24. なぜ「最大再帰深度を超えていますか」
- 25. 簡単なPHP再帰 - なぜ私はメモリから外れていますか?
- 26. pyGameまたはpygletがpython 3をサポートしないのはなぜですか?
- 27. dictキーはリスト減算をサポートしますが、タプル減算はサポートしないのはなぜですか?
- 28. Ant filtersetタスクが再帰しない
- 29. F#で無限再帰がスタックオーバーフロー例外に当たっていないのはなぜですか?
- 30. なぜ私のScalaのテール再帰はwhileループより速いのですか?
Talonmies:再帰機能は、コンピューティング機能2.xデバイスのデバイス機能でサポートされています。 –
@ashwin:私はそれをよく知っています。そのため、「NVIDIAは、すべてのCUDA対応ハードウェアの再帰をサポートしていません」と言っています。彼らはいくつかの、すなわちフェルミとケプラーでそれをサポートしています... – talonmies