无显示屏运行 CARLA 并选择 GPU

笔记

请参阅 #225 了解替代方法。

本教程适用于

  • 拥有多张 nvidia 显卡并希望在所有 GPU 上有效使用 CARLA 的远程服务器用户。
  • 想要使用未插在屏幕上的GPU来渲染CARLA的桌面用户。

在本教程中你将学习

  • 如何配置您的服务器,让 nvidia 在未连接显示器的情况下进行渲染。
  • 如何使用 VNC + VGL 模拟连接到您机器中任何 GPU 的显示器。
  • 最后,如何在此环境中运行 CARLA

本教程在 Ubuntu 16.04 中使用 NVIDIA 384.11 驱动程序进行了测试。

准备工作

您的服务器中需要先运行一些程序。最新的 NVIDIA 驱动程序、OpenGL、VirtualGL(VGL)、TurboVNC 2.11。

NVIDIA 驱动程序

下载并安装 NVIDIA 驱动程序 以及典型教程。

OpenGL

Openg GL 是 Virtual GL 所必需的。通常可以通过 apt 安装 OpenGL。

sudo apt-get install freeglut3-dev mesa-utils

VGL

按照本教程安装 vgl: 安装 VGL

TurboVNC

按照以下教程安装 TurboVNC 2.11: 安装 TurboVNC

警告:请谨慎安装 VNC,因为它可能与 Unreal 不兼容。上面的那个是唯一对我有用的。

额外的包

这些额外的包对于虚幻引擎的运行是必需的。

```shell script sudo apt install x11-xserver-utils libxrandr-dev


### 配置你的 X
您必须生成与您的 nvdia 兼容的 X,并且兼容在无显示的情况下运行。为此,以下命令有效:

```shell script
sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024

模拟虚拟显示

运行你自己的 Xorg。这里我使用数字 7,但它可以标记为任何自由数字 ```shell script sudo nohup Xorg :7 &


运行辅助远程 VNC-Xserver。这将创建虚拟显示器“8”。

```shell script
/opt/TurboVNC/bin/vncserver :8

如果一切正常,以下命令应该可以顺利运行。 ```shell script DISPLAY=:8 vglrun -d :7.0 glxinfo


注意。这将在 Xserver 7、设备 0 上运行 glxinfo。这意味着您正在选择机器上的 GPU 0。要在其他 GPU(例如 GPU 1)上运行,请运行:
```shell script
DISPLAY=:8 vglrun -d :7.1 glxinfo

额外的

如果您希望在创建“nohup Xorg”时禁用 sudo,请转到“/etc/X11/Xwrapper.config”文件并将“allowed_users=console”更改为“allowed_users=anybody”

在运行 nohup Xorg 之前可能需要停止所有 Xorg 服务器。该命令可能因您的系统而异。通常对于 Ubuntu 16.04,您应该使用:

```shell script sudo service lightdm stop



## 运行 CARLA
现在,最后,要在某个 $CARLA_PATH 中的某个 gpu_number 上运行 CARLA,请运行。
```shell script
DISPLAY=:8 vglrun -d :7.<gpu_number> $CARLA_PATH/CarlaUE4/Binaries/Linux/CarlaUE4