“模块 nvidia 正在使用”,但 GPU 上没有正在运行的进程

Iva*_*kov 12 nvidia gpu drivers virtualgl 18.04

我正在尝试配置 VirtualGL,配置给出以下消息:

IMPORTANT NOTE: Your system uses modprobe.d to set device permissions. You
must execute rmmod nvidia with the display manager stopped in order for the
new device permission settings to become effective.
Run Code Online (Sandbox Code Playgroud)

当我尝试运行rmmod nvidia(或使用sudo)时,它表示模块 nvidia 正在使用中:

rmmod: ERROR: Module nvidia is in use by: nvidia_uvm nvidia_modeset

我已经通过运行停止了我的窗口管理器sudo systemctl stop sddm.service,所以当我检查时nvidia-smi它说 GPU 上没有正在运行的进程。

我在这个问题上发现的大多数线程都与大黄蜂有关,但我什至没有安装它。

输出nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40       Driver Version: 430.40       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 00000000:01:00.0 Off |                  N/A |
| 33%   39C    P8    12W / 200W |      9MiB /  8119MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

乌班图18.04

小智 11

在 Ubuntu 20.04 上,我能够使用以下命令(通过 SSH 或纯文本 tty 执行)完全卸载并重新加载 NVIDIA 模块。

sudo service gdm3 stop

sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia

# Then, reload them if desired:
sudo modprobe nvidia
sudo modprobe nvidia_modeset
sudo modprobe nvidia_drm
sudo modprobe nvidia_uvm
Run Code Online (Sandbox Code Playgroud)

apt例如,在无需重新启动的情况下升级 NVIDIA 驱动程序时(这可能会因无人值守升级而意外发生),这会派上用场。


正如 @Thomas 在评论中指出的那样,如果仍然存在阻止其中一个模块卸载的原因,通常可以通过以下方式找出原因:

lsmod | grep nvidia
lsof | grep nvidia
Run Code Online (Sandbox Code Playgroud)