使用Ubuntu

时间:2017-01-19 11:50:10

标签: ubuntu opengl amazon-ec2 gpu headless

我试图让opengl在使用Ubuntu Ubuntu Server 16.04的Amazon p2实例上进行无头屏幕渲染。

在创建实例后,我已根据this amazon article安装了相应的nvidia驱动程序,它们似乎按预期工作:

$ lsmod | grep nvidia
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              11911168  1 nvidia_modeset
drm_kms_helper        155648  3 cirrus,nouveau,nvidia_drm
drm                   364544  7 ttm,drm_kms_helper,cirrus,nouveau,nvidia_drm

$ nvidia-smi -q | head
==============NVSMI LOG==============

Timestamp                           : Thu Jan 19 11:22:38 2017
Driver Version                      : 375.20

Attached GPUs                       : 1
GPU 0000:00:1E.0
Product Name                    : Tesla K80
Product Brand                   : Tesla

然后我尝试this related question的步骤:

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 &

哪个启动X但运行glxinfo不起作用:

$ DISPLAY=:0 glxinfo
name of display: :0
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
(... line repeats couple of times ...)
Error: couldn't find RGB GLX visual or fbconfig

如相关stackoverflow问题中所述,更改Xorg.conf中的BusID没有帮助。

$ lspci|grep VGA
00:02.0 VGA compatible controller: Cirrus Logic GD 5446

/etc/X11/xorg.conf
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K80"
    BusID          "PCI:0:2:0"
EndSection

我搜索的内容非常密集,我不清楚如何继续下去...任何帮助都将不胜感激

2 个答案:

答案 0 :(得分:5)

关于此的官方文档是http://www.nvidia.com/content/PDF/remote-viz-tesla-gpus.pdf“远程可视化服务器类TESLA GPUS”。阅读第15页。您必须将BusID添加到nvidia-xconfig。

首先,运行nvidia-xconfig --query-gpu-info。这是我的p2实例结果。

Number of GPUs: 1

GPU #0:
  Name      : Tesla K80
  UUID      : GPU-f13e8e90-5d2f-f9fb-b7a8-39edf9500698
  PCI BusID : PCI:0:30:0

  Number of Display Devices: 0

然后你需要运行它。

sudo nvidia-xconfig --busid=PCI:0:30:0 --use-display-device=none --virtual=1280x1024

您可以按sudo Xorg :1运行Xorg服务器。

DISPLAY=:1 glxinfo结果。

name of display: :1
display: :1  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context,
...

答案 1 :(得分:1)

使用NVidia时,请考虑您链接的相关问题中提供的信息已废弃。

现在大约一年,NVidia驱动程序支持真正的无头操作,而无需运行X服务器。请参阅Nvidia开发人员博客上提供的详尽文章:https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/