You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询Vulkan中子组可访问的本地内存大小

有的,Vulkan中存在等价的查询能力,对应你要的计算单元本地内存(也就是Vulkan计算着色器中用shared关键字声明的共享内存)的大小查询可以通过以下方式实现:

你需要调用核心API vkGetPhysicalDeviceProperties,从返回的物理设备属性结构体的限制字段中读取maxComputeSharedMemorySize,该值单位为字节,和OpenCL中CL_DEVICE_LOCAL_MEM_SIZE返回的参数含义完全对应。

示例代码如下:

VkPhysicalDeviceProperties physicalDeviceProperties;
// 传入你要查询的VkPhysicalDevice实例
vkGetPhysicalDeviceProperties(physicalDevice, &physicalDeviceProperties);
// 读取计算单元可访问的本地共享内存大小
VkDeviceSize localMemSize = physicalDeviceProperties.limits.maxComputeSharedMemorySize;

补充说明:

  • 该值表示单个计算工作组最多可以使用的共享内存容量,符合Vulkan规范的设备最低支持该值不小于16384字节(16KB),常见消费级GPU通常返回32KB或48KB,专业计算卡可能支持更高的64KB及以上容量。
  • 如果你需要查询针对特定队列家族的额外限制,可以配合VK_KHR_get_physical_device_properties2扩展查询对应队列家族的属性,绝大多数通用计算场景下直接读取全局的maxComputeSharedMemorySize即可满足需求。

内容的提问来源于stack exchange,提问作者alagris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 08:39:03