我的gazebo版本是Fortress。通过nvidia-smi查看gpu缓存和进程占用情况,始终没有使用到gpu资源。

由于机器使用的是Intel/Nvidia 系统,模拟器默认会在 Intel cpu下运行,而不是使用 Nvidia GPU

其实只要配置以下环境变量即可:

export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia

将 __NV_PRIME_RENDER_OFFLOAD 环境变量设置为 1:表示启用 Prime Render Offload 功能。此功能允许 NVIDIA GPU 动态地承担图形渲染任务,而默认情况下,集成显卡处理基本的显示任务。

将 __GLX_VENDOR_LIBRARY_NAME 设置为 nvidia:告诉系统在加载 OpenGL 图形库时,优先使用 NVIDIA 的 GLX 实现,而不是默认的集成显卡的 OpenGL 实现(如 Intel)。这样可以确保图形渲染任务使用 NVIDIA GPU 来处理,而不是集成显卡。

启用gazebo后再次查看nvidia-smi,可以看到GPU进程中存在ign gazebo server和ign gazebo gui,说明gazbeo已经使用GPU进行了加速。