私はVulkan計算シェーダのセットに特定のアルゴリズムを実装することに興味があります。このアルゴリズムは、ある時点でclz()関数を使用します。私は、NVIDIA GPUがおそらくこの機能のハードウェアサポートを提供していると思います。 CUDAは明らかにclz命令を使用し、clz()もOpenCL 1.2に含まれています。だから私は自分のclz()を書いたくない。 CUDAやOpenCLのやり方でこの関数を呼び出す方法はありますか?Vulkanの計算シェーダでclz()を使用する方法はありますか?
私はOpenCLカーネルをSPIR-VにコンパイルしてVulkanでそれを使ってみることができますが、Vulkanはそれについて非常に満足しているとは思いません...?
もう1つは、SPIR-Vアセンブリへのclz()呼び出しを含む非常に単純なOpenCLカーネルを翻訳し、GLSLシェーダで同じことをしてから、clz()呼び出しを手動でハックすることですカーネルアセンブリコードに表示されるように、シェーダのアセンブリコードに書き込まれます。しかし、私はSPIR-Vの詳細や、計算機シェーダーがどのような種類のSPIR-V命令を使用するかについてVulkanがどのような制限を設けているかについては何も知らないので、実際に動作するかどうかについてはほとんど考えていません。
さらなる調査の後、更新された回答に注意してください。 –