使用CentOS在AWS GPU实例上运行OpenGL

我需要使用CentOS在AWS EC2 GPU实例上执行一些屏幕外渲染程序。但是,当我发现Ubuntu很容易设置时,我不能让CentOS正常工作。

目标是在EC2 GPU实例(没有屏幕或X客户端)上运行一些基本的实用程序/测试工具。在下面的文章中,我将介绍如何设置Ubuntu,以及CentOS / Amazon Linux AMI如何失败。

Ubuntu的

在ubuntu 12.04上,一切都很顺利。我使用的EC2环境是:

>实例类型:CG1和G2都被测试和正常工作。
> AMI映像:Ubuntu Server 12.04.3 HVM实例的LTS(US-East中的ami-b93264d0)
>大多数其他设置都是认设置。

启动实例后,执行以下命令:

# Install the Nvidia driver
sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current
# Driver installation needs reboot
sudo reboot Now

# Install and configure X window with virtual screen
sudo apt-get install xserver-xorg libglu1-mesa-dev freeglut3-dev mesa-common-dev libxmu-dev libxi-dev
sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
sudo /usr/bin/X :0 &

# OpenGL programs are Now workable. Ex. glxinfo,glxgears
disPLAY=:0 glxinfo

glxgears也可以在后台运行,无需物理屏幕或X客户端:

$ disPLAY=:0 glxgears
95297 frames in 5.0 seconds = 19059.236 FPS
95559 frames in 5.0 seconds = 19111.727 FPS
94173 frames in 5.0 seconds = 18834.510 FPS

CentOS或Amazon Linux AMI

“CentOS”和“Amazon Linux AMI”均来自Red Hat Enterprise Edition。但是,我不能使任何一个工作。

前几天,AWS announced their new G2 instance type.在这文章中,推荐使用Amazon Linux AMI with NVIDIA Drivers的Linux平台。在这个AMI中,Nvidia驱动程序,X窗口和OpenGL库都已经安装。但是,在尝试执行OpenGL程序时,我只会收到GLX错误消息。

启动EC2实例,具有以下设置:

> AMI图像:Amazon Linux AMI与NVIDIA GRID GPU驱动程序(美国东部的ami-637c220a)
>实例类型:G2
>大多数其他设置都是认设置

启动后,重现此问题的步骤非常简单:

sudo X :0 & # Start the X window
glxinfo
glxgears

输出为:

$ glxinfo
name of display: :0
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Error: Couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

$ glxgears
Xlib:  extension "GLX" missing on display ":0".
Error: Couldn't get an RGB,Double-buffered visual

以下错误在/var/log/Xorg.0.log中找到:

[139017.484] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

我已经google了,尝试了很多可能的解决方案,比如:

>使用干净的CentOS HVM AMI并手动安装Nvidia驱动程序
>尝试了CG1 / G2实例类型
>使用nvidia-xconfig重新生成X窗口配置
>使用Xvfb而不是X窗口
>在安装了mesa库之后重新安装Nvidia驱动程序

…但没有一个工作。

有没有人有这个问题的具体解决方案?我提到的一切都应该是可重复的(我尝试了很多次)。如果您可以提供可重复的说明,使OpenGL(GLX)在使用CentOS / Amazon Linux AMI的EC2 GPU实例上工作,我将不胜感激。

lspci | grep VGA

你应该看到busID是0:3:0。

使用sudo,将其添加到您的xorg.conf中,如下所示:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    vendorName     "NVIDIA Corporation"
    BoardName      "GRID K520"
    BusID           "0:3:0"
EndSection

这应该会解决GLX故障。

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native