Arch系统Jupyter notebook中PyTorch CUDA支持不可用问题咨询
问题常见诱因
Arch源提供的jupyterhub 1.4.0版本默认systemd服务配置开启了PrivateDevices安全隔离选项,该选项会屏蔽服务对/dev目录下非基础设备的访问,导致Jupyterhub启动的内核进程无法识别NVIDIA显卡的/dev/nvidia*设备节点,是该场景下最常见的诱因。
可执行的排查步骤
- 第一步:验证设备访问权限
在Jupyter notebook中执行!ls /dev/nvidia*,如果输出无/dev/nvidia0、/dev/nvidiactl等设备文件,即可确认是设备访问被隔离导致的问题。 - 第二步:检查Jupyterhub的systemd服务配置
执行systemctl cat jupyterhub查看服务配置,确认是否存在PrivateDevices=true配置项:
如果存在该配置,执行以下操作覆盖默认配置:
# 创建设备权限覆盖配置目录 mkdir -p /etc/systemd/system/jupyterhub.service.d/ # 写入覆盖配置 cat > /etc/systemd/system/jupyterhub.service.d/override.conf << EOF [Service] PrivateDevices=false DeviceAllow=/dev/nvidia* rwm EOF # 重载配置并重启服务 systemctl daemon-reload systemctl restart jupyterhub
- 第三步:验证Jupyterhub运行用户的组权限
执行ps aux | grep jupyterhub查看进程运行用户,执行groups 运行用户名确认该用户已加入video组,若未加入执行usermod -aG video 运行用户名后重启Jupyterhub服务。 - 第四步:验证PyTorch运行时库加载情况
在Jupyter notebook中执行以下命令,确认加载的CUDA库版本与系统版本匹配:
import torch print(torch.version.cuda) !ldd $(python -c "import torch; print(torch._C.__file__)") | grep cuda
内容的提问来源于stack exchange,提问作者Katoon
相关产品推荐
相关产品推荐

