mjw*_*ach 4 shader opencl vulkan spir-v
我对在一组Vulkan计算着色器中实现特定算法感兴趣.该算法在一个点使用clz()函数.我希望我的NVIDIA GPU可能为这个功能提供硬件支持; CUDA显然使用clz指令,而clz()也在OpenCL 1.2中.所以我不想写自己的clz().有没有办法让我以CUDA或OpenCL的方式调用函数?
我想我可以尝试将一个OpenCL内核编译成SPIR-V并在Vulkan中使用它,但我不认为Vulkan会对此感到高兴......?
我的另一个想法是,也许我可以翻译一个包含对SPIR-V程序集的clz()调用的非常简单的OpenCL内核,对我的GLSL着色器执行相同操作,然后手动破解clz()调用,因为它出现在内核汇编代码中,进入着色器的汇编代码.但我对SPIR-V的细节一无所知,或者说Vulkan可能对计算着色器可能使用的各种SPIR-V指令有什么限制,所以我几乎不知道这是否真的有用.