gpt4 book ai didi

cuda - 如何确保 Vulkan 使用与 CUDA 相同的 GPU?

转载 作者:行者123 更新时间:2023-12-04 15:15:09 25 4
gpt4 key购买 nike

我正在使用一个在 HPC 集群(univa 网格引擎)上同时使用 vulkan 和 cuda(特别是 pytorch)的应用程序。

提交作业时,集群调度程序会设置一个环境变量 SGE_HGR_gpu,其中包含要使用的作业的 GPU ID(因此其他用户运行的其他作业不会使用相同的 GPU)

告诉使用 CUDA 的应用程序使用特定 GPU 的典型方法是设置 CUDA_VISIBLE_DEVICES=n

因为我也在使用 Vulkan,所以我不知道如何确保我从 vkEnumeratePhysicalDevices 列出的设备中选择相同的设备。

认为 'n' 取值的顺序与 PCI 总线上设备的顺序相同,但是我不知道返回的设备顺序是否vkEnumeratePhysicalDevices是这个顺序,文档没有说明这个顺序是什么。

那么我怎样才能确保为 Vulkan 和 CUDA 选择相同的物理 GPU?

最佳答案

使用 VkPhysicalDeviceIDPropertiesKHR (Vulkan 1.1) resp VkPhysicalDeviceVulkan11Properties (Vulkan 1.2) 你可以获得设备 UUID,这是 CUDA_VISIBLE_DEVICES 似乎的格式之一使用。您还应该能够使用 nvidia-smi -L(或使用 NVML 库)将索引转换为 UUID(反之亦然)。

或者换句话说,cudaDeviceProp 包含可以与 VK_EXT_pci_bus_info 扩展输出进行比较的 PCI 信息。

如果在 Vulkan 中顺序匹配,最好直接询问 NVidia;我找不到 NV 如何订购它们的信息。来自 Vulkan Loader 实现的 IIRC,顺序应该匹配来自注册表的顺序,然后是 NV 驱动程序本身给它们的顺序。即使这样,您也必须从通用代码列表中过滤掉非 NV GPU,并且您不知道 NV Vulkan ICD 实现是否与 CUDA 匹配而不询问 NV。

关于cuda - 如何确保 Vulkan 使用与 CUDA 相同的 GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64471080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com