平台:x86_64、Ubuntu 22.04.4 LTS、5.15.0-101-generic、jupyterhub 2.0.0+ds1-2
我已经jupyterhub
从官方 Ubuntu 软件存储库(包jupyterhub
)安装了。这有效,我可以登录并运行 Python 代码。在 jupyterhub 中,我使用与系统 Python 相同的 Python 版本。我不认为这是安装不同版本的库的问题。
从PyTorch中,我可以从多个用户的控制台(包括 IPython 内部)获取 GPU 访问权限:
moo@hostname:~$ ipython3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.8.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import torch
In [2]: torch.cuda.is_available()
Out[2]: True
但它在 jupyterhub 中不起作用:
import torch
torch.cuda.is_available()
False
看起来这是 jupyterhub 权限/访问的问题。从 jupyterhub 内部:
!nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
当我在 jupyter 中运行时,这在我得到的用户控制台上运行良好!whoami
。
有人对接下来要尝试什么有任何想法吗?
发生这种情况是因为为 systemd 配置jupyterhub Ubuntu 软件包的方式。
默认情况下,jupyterhub 的systemd 容器接口
PrivateDevices=yes
已启用,/etc/systemd/system/multi-user.target.wants/jupyterhub.service
这意味着无法从 jupyter Notebook 内访问 nvidia 设备,并导致此行为。禁用相关 systemd 配置文件中的私有设备选项,然后重新启动 jupyterhub 服务:
这解决了我的问题。