私は現在OpenCLプロジェクトに取り組んでいますが、なぜそれが再帰をサポートしていないのか疑問に思います。並列処理と関係がありますか?
3281 次
2 に答える
7
ターゲットハードウェアに関係していると思います。再帰をサポートするには、特定のクラスの OpenCL デバイス (つまり、GPU) にはないいくつかのハードウェア機能が必要です。それらがなければ、コール スタックを維持し、間接的なコード ブランチを実行することは現実的ではありません。同じ理由で、NVIDIA はすべての CUDA 対応ハードウェアで再帰をサポートしていません。
于 2012-04-07T07:43:21.930 に答える
4
OpenCL ではなく、GPU ハードウェアです。AMD は、再帰をサポートする将来の命令セット アーキテクチャを策定しました。GPU には多数のレジスタがあります (最大 32 K)。ですから、何を求めて何を得るのかに注意してください。再帰呼び出しの場合、32K レジスタのプッシュ/ポップは高速ではありません。
于 2012-04-07T17:13:44.100 に答える