mia*_*t17 22 opengl gpu centos amazon-ec2 amazon-web-services
我需要使用CentOS在AWS EC2 GPU实例上执行一些离屏渲染程序.然而,虽然我发现Ubuntu很容易设置,但我不能让CentOS正常工作.
目标是在EC2 GPU实例上运行一些基本的实用程序/测试工具(没有屏幕或X客户端).在下面的文章中,我将描述如何设置Ubuntu以及CentOS/Amazon Linux AMI如何失败.
在ubuntu 12.04上,一切都很顺利.我使用的EC2环境是:
启动实例后,将执行以下命令:
# 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
Run Code Online (Sandbox Code Playgroud)
该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
Run Code Online (Sandbox Code Playgroud)
"CentOS"和"Amazon Linux AMI"均源自红帽企业版.但是,我不能让它们中的任何一个起作用.
几天前,AWS 宣布推出新的G2实例类型.在本文中,推荐使用带有NVIDIA驱动程序的Amazon Linux AMI用于Linux平台.在这个AMI中,安装了Nvidia驱动程序,X窗口和OpenGL库.但是,我在尝试执行OpenGL程序时只收到GLX错误消息.
使用以下设置启动EC2实例:
启动后,重现此问题的步骤非常简单:
sudo X :0 & # Start the X window
glxinfo
glxgears
Run Code Online (Sandbox Code Playgroud)
输出是:
$ 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
Run Code Online (Sandbox Code Playgroud)
在以下位置找到以下错误/var/log/Xorg.0.log:
[139017.484] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
Run Code Online (Sandbox Code Playgroud)
我用Google搜索并尝试了很多可能的解决方案,例如:
......但它们都不起作用.
有没有人为这个问题找到具体的解决方案?我提到的一切都应该是可以重复的(我试过很多次).如果您能提供可重现的说明,以使OpenGL(GLX)在使用CentOS/Amazon Linux AMI的EC2 GPU实例上运行,我将不胜感激.
小智 16
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
Run Code Online (Sandbox Code Playgroud)
这应该可以解决GLX故障.
小智 6
另外一个发现:
我这样做是为了让X Server运行:
sudo /usr/bin/X :0 &
Run Code Online (Sandbox Code Playgroud)
但是,我的OpenGL应用程序仍然没有使用GPU进行图像渲染,因此非常慢.
这就是我节省的 - 将一个DISPLAY环境变量设置为X服务器正在使用的同一显示(ID:0):
export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10504 次 |
| 最近记录: |