Gazebo GPU加速【gzserver running in GPU】

在这里插入图片描述

文章目录

  • 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查看,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
Gazebo GPU加速【gzserver running in GPU】_第1张图片Gazebo GPU加速【gzserver running in GPU】_第2张图片下载后修改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

在这里插入图片描述Gazebo GPU加速【gzserver running in GPU】_第3张图片非常丝滑

2.2 headless

X11 有时需要指定显示

export DISPLAY=:0

3. 补充

3.1 如何确定的Gazebo为OpenGL渲染

笔者准备自行源码编译Gazebo
Gazebo GPU加速【gzserver running in GPU】_第4张图片确定了此项的作用

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驱动时禁用它的图形模式设置,从而可能避免一些潜在的显示问题。

你可能感兴趣的:(日常问题,ROS,Gazebo,OpenGL,仿真,GPU)