Vulkan 是否以正确的顺序调用计算着色器的工作组?
Does Vulkan invoke work groups of a compute shader in the correct order?
当我调用 vkCmdDispatch
时,GPU 将尝试 运行 尽可能多的并行分组。如果有太多的组,那么其中一些将不得不等待其他人完成,然后才有 space(就像 nvidia 上的一些可用扭曲)。
我想知道 Vulkan 是否以某种方式保证具有较低 gl_WorkGroupID
的组将 运行 在具有较高 gl_WorkGroupID
的组之前。因此,例如,如果我编写代码
if(gl_GlobalInvocationID.x==0){
// some preliminary setup
}
那么我可以确定这段代码会在最开始执行。
工作组执行完全无序,基本上没有有效工具可以强制以任何特定顺序执行工作组。
当我调用 vkCmdDispatch
时,GPU 将尝试 运行 尽可能多的并行分组。如果有太多的组,那么其中一些将不得不等待其他人完成,然后才有 space(就像 nvidia 上的一些可用扭曲)。
我想知道 Vulkan 是否以某种方式保证具有较低 gl_WorkGroupID
的组将 运行 在具有较高 gl_WorkGroupID
的组之前。因此,例如,如果我编写代码
if(gl_GlobalInvocationID.x==0){
// some preliminary setup
}
那么我可以确定这段代码会在最开始执行。
工作组执行完全无序,基本上没有有效工具可以强制以任何特定顺序执行工作组。