目标是在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实例上工作,我将不胜感激。