一、简介
滴滴云 vGPU 云服务器提供轻量级 GPU 服务,支持图形工作站、云游戏、虚拟桌面等场景,产品内置 vDWS 授权,无需用户手动配置。
CARLA 是一个基于 Unreal Engine 构建的开源自动驾驶模拟器,支持开发,训练,验证自动驾驶系统,提供完全开放的数字仿真环境(城市布局,建筑,车辆)。
CARLA 是典型的客户端-服务器架构,服务端负责传感器数据更新,环境状态转移,计算物体位移等,为了实现逼真的效果,建议单独部署在一台 GPU 服务器上。客户端则通过 Python/C++ 脚本发起远程调用,发出控制指令,例如控制车辆转弯、加速等。
运行 CARLA 模拟器部分需要的 GPU 显存容量 >= 4GB,我们这里使用 1/1 T4 实例演示,该实例显存有 16 GB,可以同时用于环境仿真和机器学习模型训练。
二、vGPU + Ubuntu 18.04 + CARLA 仿真环境搭建
购买 vGPU 实例过程如下:
其他配置略。创建成功后,通过 ssh dc2-user@公网IP 登录到云服务器。
依次运行如下命令:
sudo su apt update apt install ubuntu-desktop nvidia-xconfig -a --allow-empty-initial-configuration --virtual=1920x1080 --busid PCI:0:6:0 reboot wget https://zyk.s3-internal.didiyunapi.com/public_software/RDP/nomachine_6.4.6_1_x86_64.tar.gz tar zxvf nomachine_6.4.6_1_x86_64.tar.gz -C /usr/ /usr/NX/nxserver --install # 安装 Nomachine 远程工具,需要安全组开启 4000 端口
本地安装 Nomachine 客户端
MAC 客户端下载:https://zyk.s3.didiyunapi.com/public_software/RDP/nomachine_6.4.6_1.dmg
Windows 客户端下载:https://zyk.s3.didiyunapi.com/public_software/RDP/nomachine_6.4.6_5.exe
安装后,点新建连接
连接协议,选择默认 NX:
输入滴滴云游戏服务器 IP 地址(vGPU 实例),端口默认 4000 :
认证方式为密码:
不需要代理:
起个好记的名字:
双击刚刚新建的连接图标
输入用户名和密码(创建云主机时设置)
后续一路点 OK 直到进入系统登录页面。再次输入用户名密码即可进入桌面。
桌面如图:
打开一个终端,运行如下命令:
sudo su apt install mesa-utils glxinfo
找到如下字段:
说明桌面环境安装成功。接下来可以运行 CARLA 模拟器:
wget https://zyk.s3-internal.didiyunapi.com/CARLA_0.9.10.1.tar.gz mkdir carla tar zxvf CARLA_0.9.10.1.tar.gz -C carla ./CarlaUE4.sh
此时,会弹出 UE4 窗口:
按键盘 WSAD 可以控制前后左右移动,鼠标点击可以控制视角变换。
这只是城市环境模拟,还没有任何可移动的物体出现。我们下一节将创建可自动驾驶的车辆。
三、自动驾驶模拟效果
新开一个终端,运行如下命令:
cd carla/PythonAPI/examples/ pip install -r requirements.txt python automatic_control.py
这时会弹出一个 pygame 窗口,显示车辆的运行状态。注意上一步的 UE4 窗口需要保持运行。
显存和计算开销如下:
完成上述步骤之后,你可以更进一步探索如下内容:
模拟器(server)与算法(client)分离部署,这样模拟器部署环境可以使用 1/2 T4 或者 1/4 T4 这种更小的规格来减少费用;
算法部分可部署在另一台 CPU/GPU 服务器上,注意要能访问模拟器所在服务器的 2000, 2001 两个端口;
为了达到更好的实时显示效果,模拟器所在的云服务器可以调大 EIP 带宽(> 20Mbps),获得更好的视觉体验;
除了免费的 Nomachine 软件之外,滴滴云有自研串流技术,能进一步改善画质,降低延迟,联系客服获取超前体验机会;
四、总结
利用滴滴云提供的 vGPU 实例可支持图形化的开发和仿真环境。本文介绍的自动驾驶模拟可以帮助算法工程师实时观察环境,了解控制算法在模拟器中的表现,从而为算法改进提供帮助。