Vulkan 是否支持本地子组内存共享和操作?

Does Vulkan support local subgroup memory sharing and manipulation?

在 OpenCL 中,只要我想操作子组内存,我就可以使用 __local。类似地,CUDA 有 __shared__ 关键字。 Vulkan 有等效的东西吗?我在子组教程中看不到任何内容 https://www.khronos.org/blog/vulkan-subgroup-tutorial 虽然我确实看到他们提到了 共享内存 ,但他们从未真正解释过如何初始化它。

Vulkan 支持 shared 缓冲区。它们在这里得到了更好的描述

https://www.khronos.org/opengl/wiki/Compute_Shader#Shared_variables

用法示例如下所示

layout (local_size_x = 32) in;

layout(std430, set = 0, binding = 1) buffer SomeBuffer{
    int some_ints[];
};

shared int[32] shared_ints;

void main(){
   shared_ints[gl_LocalInvocationID.x] = some_ints[gl_GlobalInvocationID.x];
}