如何在无头服务器上利用独立显卡?

8
我正在为BioMesh3D工作,开发一个远程可视化项目,利用加强版服务器进行处理和渲染。如果我们设置一个用户自动登录到图形桌面,那么很容易让它运行起来,但是我们希望完全无头运行而不必进行自动登录。
如果我们想完全无头运行服务器,似乎唯一的选择是依靠Xvfb之类的东西。但由于我们正在进行一些相当复杂的渲染,我们希望利用离散显卡。
是否可以让Xvfb使用显卡?如果不能,有其他方法可以使用吗?

2
你是否真的想要加速OpenGL相关的内容,还是OpenCL类型的内容?如果是OpenCL,我建议首先尝试查看带有GPU硬件的亚马逊EC2实例的情况。 - Jay Kominek
我们正在使用OpenGL在SCIRun中渲染3D网格。 - rabid.sloth
2个回答

3
如果您想在Linux上使用硬件OpenGL渲染,那么您的选择有:
  • 尝试使用Gallium驱动和EGL的最新Mesa版本。如果我没记错的话,这只支持GLES,所以您可能需要调整渲染代码。
  • 运行X服务器以通过传统驱动程序访问OpenGL硬件

NVIDIA二进制驱动支持运行无头X服务器(甚至多个)。有关详细信息,请查看http://vizstack.sourceforge.net/项目。

至于VirtualGL,它将让您实现透明远程渲染而不需要修改您的应用程序(我不理解您的“它有点过分”或“重写应用程序”意见,您能解释一下吗?),但仍需要运行X服务器。(更新:VirtualGL 3支持EGL后端,不需要运行X服务器。)


1

我们已经看过了。这是目前为止,唯一一个我们认为可以按照我们想要的方式工作的东西。然而,它有点过于侵入性了。我们不太愿意重写应用程序来方便使用virtualgl。谢谢回复! - rabid.sloth
1
@rabid.sloth:完全可以在不执行自动登录的情况下启动X。 在其中一个启动脚本中:'xinit $COMMAND_TO_LAUNCH_A_PRIMARY_X_CLIENT -- /usr/bin/X :100' - datenwolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接