linux - CUDA/PyCUDA : Which GPU is running X11?

标签 linux cuda x11 pycuda

在多GPU的Linux系统中,如何判断哪个GPU运行X11,哪个完全免费运行CUDA内核?在具有低功率 GPU 运行 X11 和更高功率 GPU 运行内核的系统中,这可以通过一些试探法来确定以使用更快的卡。但是在有两张相同卡的系统上,不能使用这种方法。是否有 CUDA 和/或 X11 API 来确定这一点?

更新:命令“nvidia-smi -a”显示“显示器”是否已连接。我还没有确定这是否意味着物理连接、逻辑连接(运行 X11)或两者。在此命令上运行 strace 显示调用了很多 ioctl 而没有调用 X11,因此假设该卡报告显示器已物理连接。

最佳答案

cudaDeviceProp 结构中有一个设备属性 kernelExecTimeoutEnabled,它将指示设备是否受制于显示看门狗定时器。这是判断给定 CUDA 设备是否运行 X11(或等效的 Windows/Mac OS)的最佳指标。

在 PyCUDA 中,您可以像这样查询设备状态:

In [1]: from pycuda import driver as drv

In [2]: drv.init()

In [3]: print drv.Device(0).get_attribute(drv.device_attribute.KERNEL_EXEC_TIMEOUT)
1

In [4]: print drv.Device(1).get_attribute(drv.device_attribute.KERNEL_EXEC_TIMEOUT)
0

此处设备 0 连接了显示器,设备 1 是专用计算设备。

关于linux - CUDA/PyCUDA : Which GPU is running X11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6428945/

相关文章:

cuda - __global__ 函数如何像 C/C++ 那样返回值或中断

opencv - 从 HWC 转换为 CHW 的 cudaMemcpy 图像数据

c++ - 在 X11 下如何判断你的光标是否指向你的桌面

linux - 使用 awk 在不添加新行的情况下将时间添加到 .plot 文件中

c++ - 在 read() 上阻塞时线程 'disappears' 我该如何调试它?

python - 每次按下一个键时回调函数(不管哪个窗口有焦点)?

c++ - 推力异常 : "thrust::system::system_error at memory location 0x00000000"

x11 - PuTTY X11代理:不支持的授权协议(protocol)

interface - 使用眼动追踪跟踪窗口焦点? (窗口管理器)

linux - 如何找到我当前所在的 Linux 目录的根目录