Gazebo GPU加速【gzserver running in GPU】

在这里插入图片描述

Gazebo GPU加速

1. 问题

Gazebo仿真帧率极低,fps在10以下,同时显卡驱动已安装,但是跑Gazebo仍然消耗CPU严重。
通过nvidia-smi查看,gzservergzclient均不在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驱动时禁用它的图形模式设置,从而可能避免一些潜在的显示问题。

猜你喜欢

转载自blog.csdn.net/qq_38853759/article/details/132522471
GPU