root@iZk1aev4bo0xd7wt3u04lrZ:~# nvidia-smi -L
GPU 0: NVIDIA A10 (UUID: GPU-0686193e-fd49-fbf2-d6fb-2c1361cef467)
GPU 1: NVIDIA A10 (UUID: GPU-7f1c1c44-e056-5d4a-7c00-25282528020a)
GPU 2: NVIDIA A10 (UUID: GPU-be481485-9883-9209-f19c-d4046830f118)
GPU 3: NVIDIA A10 (UUID: GPU-46b881f3-6548-22e8-b3ec-dcc7f320698a)
GPU 4: NVIDIA A10 (UUID: GPU-59264023-491b-207c-ee7d-c54b7b1bdf5e)
GPU 5: NVIDIA A10 (UUID: GPU-88539a6a-8325-b14f-8af0-d7375ec3f8cd)
GPU 6: NVIDIA A10 (UUID: GPU-5c2805df-c654-171a-93ed-d20095b3037b)
GPU 7: NVIDIA A10 (UUID: GPU-a87f152f-f349-03cb-b23a-170d100d64b3)
root@iZk1aev4bo0xd7wt3u04lrZ:~# 
root@iZk1aev4bo0xd7wt3u04lrZ:~# sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
rmmod: ERROR: Module nvidia_uvm is in use
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

这个错误信息表示 nvidia_uvm 内核模块当前正在使用中,因此不能被卸载 (rmmod)。nvidia_uvm 是 NVIDIA Unified Memory 驱动程序的一部分,通常在 CUDA 应用程序运行时会被使用。

可能的原因
  • 正在使用 GPU:当前系统中可能正在运行使用 GPU 的应用程序或进程,例如深度学习模型、CUDA 程序、显示管理器等。
  • 驱动程序依赖:有些系统服务或后台任务可能依赖于 nvidia_uvm 模块,因此无法卸载它。
解决方法
  1. 查找正在使用 GPU 的进程
    使用 nvidia-smi 查看正在使用 GPU 的进程:
nvidia-smi
  • 1.

你将看到类似于以下的输出:

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                             |
|=============================================================================|
|    0   N/A  N/A     12345      C   python3                          8000MiB |
+-----------------------------------------------------------------------------+
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

PID 列表示正在使用 GPU 的进程 ID。

  1. 终止进程
    如果确定某个进程不需要继续运行,可以通过 kill 命令终止该进程。例如,假设 PID 为 12345:
sudo kill 12345
  • 1.

然后再尝试卸载模块:

sudo rmmod nvidia_uvm
  • 1.
  1. 检查是否有必要卸载
    在一些情况下,可能不需要卸载 nvidia_uvm 模块,除非你正在执行驱动程序的更新或重置。如果只是为了重新加载模块,可以考虑重启系统或仅重启相关服务。
  2. 如果需要强制卸载
    如果你确信没有重要的任务正在使用 GPU,可以尝试使用 rmmod -f 强制卸载模块,但要小心,因为这可能导致系统不稳定。
sudo rmmod -f nvidia_uvm
  • 1.
注意事项

强制卸载 GPU 模块可能会导致当前运行的 GPU 任务失败,并可能需要重新启动服务或整个系统才能恢复正常工作。

如果你需要重新加载 nvidia_uvm 模块来解决问题,建议在可能的情况下优先考虑重新启动系统,这样可以确保所有依赖 GPU 的进程都能正确关闭,并且模块可以安全地重新加载。