From e86aaf240dd03335def0659d48d41f96b7998233 Mon Sep 17 00:00:00 2001 From: hotwa Date: Fri, 5 Jan 2024 15:39:36 +0800 Subject: [PATCH] add gpu --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++++- jupyterhub_config.py | 11 ++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 22ed3d4..5ae1c32 100644 --- a/README.md +++ b/README.md @@ -63,4 +63,45 @@ docker buildx build -t hotwa/notebook:latest . -f Dockerfile - [openshift/source-to-image](https://github.com/openshift/source-to-image) - A tool for building artifacts from source code and injecting them into docker images - [jupyter-on-openshift/jupyter-notebooks](https://github.com/jupyter-on-openshift/jupyter-notebooks) - - OpenShift compatible S2I builder for basic notebook images \ No newline at end of file + OpenShift compatible S2I builder for basic notebook images + +## nvidia-container-toolkit add + +参考了 llama [容器部署](https://hub.docker.com/r/ollama/ollama) + +```shell +curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \ + | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg +curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ + | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ + | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list +sudo apt-get update +sudo apt-get install -y nvidia-container-toolkit +``` + +Configure Docker to use Nvidia driver + +```shell +sudo nvidia-ctk runtime configure --runtime=docker +sudo systemctl restart docker +``` + +配置完成之后: + +```shell +docker-compose up -d +``` + +在jupyterhub_config.py中添加:这样jupyterhub的容器启动镜像就可以使用宿主机的显卡了 + +```python +# GPU 和网络配置 +c.DockerSpawner.extra_host_config = { + #'network_mode': 'host', + 'runtime': 'nvidia' +} +c.DockerSpawner.environment = { + 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', + 'NVIDIA_VISIBLE_DEVICES': 'all' +} +``` diff --git a/jupyterhub_config.py b/jupyterhub_config.py index 74885fd..eac5bcb 100644 --- a/jupyterhub_config.py +++ b/jupyterhub_config.py @@ -55,4 +55,13 @@ c.NativeAuthenticator.open_signup = True # Allowed admins admin = os.environ.get("JUPYTERHUB_ADMIN") if admin: - c.Authenticator.admin_users = [admin] \ No newline at end of file + c.Authenticator.admin_users = [admin] + +# GPU 和网络配置 +c.DockerSpawner.extra_host_config = { + 'runtime': 'nvidia' +} +c.DockerSpawner.environment = { + 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', + 'NVIDIA_VISIBLE_DEVICES': 'all' +}