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

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

的Ubuntu

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

  • 实例类型:CG1和G2均已测试并正常工作。
  • AMI镜像:用于HVM实例的Ubuntu Server 12.04.3 LTS(在美国东部地区为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版本。但是,我无法使它们中的任何一个起作用。

    几天前,AWS announced their new G2 instance type。在本文中,建议将Amazon Linux AMI with NVIDIA Drivers用于Linux平台。在此AMI中,都安装了Nvidia驱动程序,X窗口和OpenGL库。但是,尝试执行OpenGL程序时,我只会收到GLX错误消息。

    使用以下设置启动EC2实例:
  • AMI镜像:具有NVIDIA GRID GPU驱动程序的Amazon Linux AMI(在美国东部地区为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)
    

    我用谷歌搜索并尝试了很多可能的解决方案,例如:
  • 使用干净的CentOS HVM AMI并手动安装Nvidia驱动程序
  • 尝试了两种CG1 / G2实例类型
  • 使用nvidia-xconfig重新生成X窗口配置
  • 使用Xvfb代替X窗口
  • 安装台面库后,重新安装Nvidia驱动程序

  • ...但是它们都不起作用。

    有没有人对此问题有具体的解决方案?我提到的所有内容都应该是可复制的(我尝试了很多次)。如果您能提供可复制的说明以使OpenGL(GLX)在CentOS / Amazon Linux AMI的EC2 GPU实例上运行,我将不胜感激。

    最佳答案

    lspci | grep VGA
    您应该看到busID0:3:0

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

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

    这应该修复GLX故障。

    关于opengl - 使用CentOS在AWS GPU实例上运行OpenGL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19856192/

    10-16 11:51