M3ngL

WSL2 开启GPU渲染仿真画面

环境: WSL2 Ubuntu 20.04.6 LTS

目的是使用 WSL2 运行mujoco仿真器,且使用GPU加速渲染画面;物理机系统已成功安装cuda,且WSL中能成功调用nvidia-smi以及识别到物理机GPU,但WSL中的进程无法调用GPU进行渲染

image-20250921145651298

Method

终端设置环境变量

export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA

该环境变量 MESA_D3D12_DEFAULT_ADAPTER_NAME 是WSLg团队设置的可变环境变量,其原理是选择指定的GPU作为WSL在没有用户控制的情况下默认使用的GPU。具体而言,是选择d3d12 MESA后端使用的GPU。

  • WSLg,是微软为WSL开发的一项功能,允许在 Windows 系统上运行 Linux 图形用户界面 (GUI) 应用程序
  • Mesa,是一个开源的图形库,主要为 Linux 系统实现图形 API
  • D3D12(Direct3D 12 的缩写),是微软开发的一种低级图形 API(应用程序编程接口),属于 DirectX 图形技术的一部分

使用 glxinfo 程序验证是否成功开启

glxinfo | grep "OpenGL renderer"
# m3@M3ngL:~$ glxinfo | grep "OpenGL renderer"
# OpenGL renderer string: D3D12 (NVIDIA GeForce RTX 4060 Laptop GPU)

在新版本的 MESA 上,如果没有指定用户选择,d3d12后端将始终默认为第一个枚举的集成GPU。因此,在像核显+独显的笔记本电脑上,默认GPU将是Intel核显。

如果要使用NVIDIA GPU,则必须手动选择。这样做是为了避免意外唤醒更强大(和耗电)的GPU,除非这是用户想要的,因为这会影响电池寿命。

设置后再运行mujoco仿真器可以看到

image-20250921145816118

Reference

https://blog.csdn.net/qq_45298623/article/details/147224743

https://zhuanlan.zhihu.com/p/683481102

https://github.com/microsoft/wslg/wiki/GPU-selection-in-WSLg

📑
目录