【问题标题】:OpenGL and MultiGPUOpenGL 和多 GPU
【发布时间】:2013-03-25 12:23:31
【问题描述】:

我们正在尝试使用 Multiple Tesla M2050 设置服务器以使用 OpenGL 运行。

当前设置如下:带有 NVidia 驱动程序的 Ubuntu 12.04。我们已经使用总线 ID 标识的单独设备设置了 xorg.conf。

现在我们已经绑定了一个 X 服务器,每个都带有显示器,而显示器又绑定到每个设备,我们的代码附加到这些 X 服务器中的每一个。但不知何故,似乎只有一个 X 会话可以正常工作。另一个产生乱码输出,在从 nvidia-smi 观看时,我们注意到当产生乱码输出时,GPU 根本没有使用。

有人可以验证我们的设置是否合理吗?我们注意到的另一件事是,只有第一个启动的 X 服务器是有问题的。

编辑:这是无头模式。

【问题讨论】:

    标签: opengl gpu gpgpu


    【解决方案1】:

    多个 X 服务器的一个问题是,每个服务器都可能获取活动的 VT,从而禁用其他 X 服务器的渲染输出。这是可以避免的。但我认为在您的情况下,好的 ole' "Zapod Mode" 会更好地满足您的需求:

    Zaphod 模式是一个 X 服务器,控制多个设备,每个设备都有自己的监视器,形成一个屏幕,加入一个屏幕布局。 这不是 TwinView 或 Xinerama! 在 Zaphod 模式下,您不能在屏幕之间移动窗口,即每个屏幕都独立运行。

    【讨论】:

    • 谢谢。抱歉,没有提到我们在无头模式下需要它。
    • @Sumod:Headless 会有点问题,因为一旦 X server 的 VT 被停用,X server 就会释放它使用的 GPU,以便其他进程可以接过来。在这种情况下,您将不得不做一些诡计,以便多个 VT 保持活动状态。这需要 Linux 内核的多席位支持并且您必须摆脱 ConsoleKit,因为这会以各种不合适的方式进行干扰。不幸的是,ConsoleKit 已被集成到 systemd 中,因此更难摆脱。
    • @Sumod:但是,如果您所追求的只是,其他 GPU 将愉快地与主 GPU 并行工作以进行图形输出,好吧:只是不要将监视器连接到它们。哎呀,我敢打赌,您可以将它们配置为根本没有监视器部​​分,或者每个屏幕大小为 0x0。当然,您必须创建 PBuffer 上下文或虚拟窗口 + FBO,然后才能获得一些可见的输出。
    猜你喜欢
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2013-07-31
    • 2015-01-23
    • 2011-07-01
    • 2013-11-06
    • 2011-06-27
    • 2015-01-10
    相关资源
    最近更新 更多