nvidia-persistenced服务已激活但GPU无法持久化,PyTorch/TensorFlow无法调用GPU
PyTorch/TensorFlow无法调用GPU:nvidia-persistenced服务运行正常但仍需手动启用持久化模式
问题描述
PyTorch和TensorFlow均无法调用本机GPU,报错出现在CUDA初始化(cuInit)阶段。最初怀疑是权限问题:/dev/nvidia*文件归属root:root,而我用普通用户运行脚本,该用户不属于root组。
查阅NVIDIA文档后得知问题根源是GPU连接未持久化,NVIDIA提供两种解决方案:
- 旧方案:以root身份执行
nvidia-smi -pm 1 - 新方案:用户空间运行
nvidia-persistenced守护进程(官方推荐,旧方案可能被淘汰)
我按照NVIDIA论坛教程配置了systemd下的nvidia-persistenced服务,systemctl status显示服务已正常运行,但PyTorch/TensorFlow依旧无法访问GPU。只有手动执行以下命令后,GPU才能被正常调用:
$ su - # nvidia-smi -pm 1 # exit
环境配置
- 操作系统:Debian 12 Bookworm
- NVIDIA驱动版本:535.183.01
- CUDA Toolkit版本:12.3
- PyTorch版本:2.4
- TensorFlow版本:2.17
当前systemd配置
服务文件内容
[Unit] Description=NVIDIA Persistence Daemon Wants=syslog.target [Service] Type=forking ExecStart= ExecStart=/usr/bin/nvidia-persistenced --persistence-mode --user debian ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced [Install] WantedBy=multi-user.target
服务状态信息
root@debian:~# systemctl status nvidia-persistenced.service ● nvidia-persistenced.service - NVIDIA Persistence Daemon Loaded: loaded (/lib/systemd/system/nvidia-persistenced.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/nvidia-persistenced.service.d └─override.conf Active: active (running) since Tue 2024-07-30 11:19:18 IST; 35min ago Main PID: 3803 (nvidia-persiste) Tasks: 1 (limit: 38180) Memory: 432.0K CPU: 5ms CGroup: /system.slice/nvidia-persistenced.service └─3803 /usr/bin/nvidia-persistenced --persistence-mode --user debian Jul 30 11:19:18 debian systemd[1]: Starting nvidia-persistenced.service - NVIDIA Persistence Da> Jul 30 11:19:18 debian systemd[1]: Started nvidia-persistenced.service - NVIDIA Persistence Dae> Jul 30 11:19:18 debian nvidia-persistenced[3803]: Started (3803)
希望能得到解决方向的指点。
内容的提问来源于stack exchange,提问作者varunnrao
相关产品推荐
相关产品推荐

