文章目录
- Gazebo GPU加速
- 1. 问题
- 2. 解决办法
- 2.1 本机运行
- 2.2 headless
- 3. 补充
- 3.1 如何确定的Gazebo为OpenGL渲染
- 3.2 显卡驱动--no-opengl-files
- 3.3 nouveau
Gazebo GPU加速
1. 问题
Gazebo仿真帧率极低,fps在10以下,同时显卡驱动已安装,但是跑Gazebo仍然消耗CPU严重。
通过nvidia-smi
查看,gzserver
和gzclient
均不在GPU中消耗显存,怀疑GPU未对Gazebo有效工作。
本机硬件环境
CPU:12490F
GPU:RTX3060(GRAM 12G)
GPU Driver:535.104.05
CUDA:12.2
2. 解决办法
2.1 本机运行
笔者问题是显卡驱动安装时指定了参数--no-opengl-files
,实际上Gazebo是通过OpenGL渲染的,所以应该重装显卡驱动,并不指定去除OpenGL
https://www.nvidia.cn/Download/index.aspx?lang=cn
下载后修改blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
末尾添加
blacklist nouveau
#options nouveau modeset=0
修改后写入系统配置,并设置无图形化启动
sudo update-initramfs -u
sudo systemctl set-default multi-user.target
sudo reboot
重启后命令行登陆
sudo chmod a+x NVIDIA-Linux-x86_64-535.104.05.run
sudo ./NVIDIA-Linux-x86_64-535.104.05.run --no-x-check --no-noveau-check
32bit库也安装(不清楚有没有影响,笔者装了)
xconfig也同意更新
安装完设置图形化重启
sudo systemctl set-default graphical.target
sudo reboot
启动gazebo
,打开nvidia-smi
非常丝滑
2.2 headless
X11 有时需要指定显示
export DISPLAY=:0
3. 补充
3.1 如何确定的Gazebo为OpenGL渲染
笔者准备自行源码编译Gazebo
确定了此项的作用
3.2 显卡驱动–no-opengl-files
在NVIDIA驱动程序安装过程中,参数–no-opengl-files的作用是告诉安装程序不要安装OpenGL相关的文件。OpenGL是一种图形库,用于渲染2D和3D图形,通常由图形驱动程序提供支持。
如果您选择使用–no-opengl-files参数安装NVIDIA驱动程序,系统中将不会包含NVIDIA提供的OpenGL库和文件。这可能会影响某些应用程序和功能,需要您根据自己的需求权衡利弊。在某些情况下,您可能需要安装另一个OpenGL实现,以便应用程序可以正常工作。
3.3 nouveau
在Ubuntu中,“nouveau” 是一个开源的图形驱动程序,用于支持NVIDIA的显卡。它是Linux社区开发的一个项目,旨在提供对NVIDIA显卡的基本支持,以便在Linux操作系统中使用这些显卡。
所以我们在安装官方显卡的时候需要禁用他,所以写入了blacklist
options nouveau modeset=0
是一个用于在Linux系统中配置Nouveau驱动的内核参数。这个参数的作用是禁用Nouveau驱动在内核中的核心功能,具体来说是禁用了核心的图形模式设置。
在某些情况下,当Nouveau驱动与特定的硬件或系统配置不兼容时,禁用图形模式设置可能会有助于解决一些显示问题,例如黑屏、闪烁等。通过在启动时添加 options nouveau modeset=0
参数,可以在系统加载Nouveau驱动时禁用它的图形模式设置,从而可能避免一些潜在的显示问题。