在具有多个GPU的SUSE计算机中,是否可以快速,可编程地告知哪些GPU(或GPU)正在呈现?
目标是自动检测符合条件/可用于调试的卡。
(人们不能在渲染显示器的卡片上使用cuda-gdb,猜测是......不优雅。)
答案 0 :(得分:2)
非编程方式,您可以使用NVIDIA控制面板(如果您为GPU加载了正确的nvidia linux驱动程序,则应在终端just be able to do nvidia-settings
启动控制面板)确定哪个GPU连接和/或渲染到哪个显示器。
以编程方式,它有点复杂,因为你必须通过“显示”定义你的意思(编程)。但是作为一个例子,如果你只有一个显示器(因此没有混淆你想到的那个),你可以使用nvidia-settings is built on(NVCtrl)的NVIDIA API来获取信息{{3 }}
使用CUDA 5.5,您可以在渲染显示器的GPU上使用cuda-gdb,但它需要cc 3.5或更高的GPU和programmatically。
我认为另一种方法(可能是最简单的,以编程方式)将使用some extra setup函数NVML
NVML是实用程序nvidia-smi
所基于的API。因此,您也可以手动查询设备的显示模式。
由于您已编辑以指示编程方法,我认为我推荐的第一种方法是NVML方法。如果您没有其他选择标准,只需循环访问GPU,直到找到禁用显示模式的GPU。如果您想确保特定GPU的显示模式已禁用,请务必将其从nvmlDeviceGetDisplayMode中排除,以用于您的特定发行版(例如,确保在xorg.conf
中未在任何Linux发行版中引用它)