我可以仅对基于 docker 的系统的主机使用 nvidia 驱动程序吗?

mCs*_*mCs 1 ubuntu cuda nvidia docker nvidia-docker

我在理解 cuda 和 docker 生态系统时遇到问题。

在主机(ubuntu 22.04)服务器上,我想生成多个机器学习 Jupyter 笔记本。

如果我在主机 ubuntu 中仅安装 Nvidia 驱动程序就足够了,如下所示:

sudo apt-get install linux-headers-$(uname -r)
DISTRIBUTION=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
echo $DISTRIBUTION
wget https://developer.download.nvidia.com/compute/cuda/repos/$DISTRIBUTION/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-drivers

sudo reboot

#After reboot verify if the CUDA driver is installed:
nvidia-smi
Run Code Online (Sandbox Code Playgroud)

然后cuda像这样安装在容器中:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
Run Code Online (Sandbox Code Playgroud)

我认为最纯粹的方法是在主机系统上仅安装所需的软件包,并使用所有必要的软件包丰富容器。这就是为什么我想知道这种做法是否合理。

  1. 我是否正确理解容器将使用主机系统的驱动程序?
  2. 安装cuda是否足以安装在容器中,或者我应该安装cuda-toolkit,因为它包含更多附加软件包?

Rob*_*lla 5

我是否正确理解容器将使用主机系统的驱动程序?

是的,容器将使用主机系统的驱动程序。如果您正在构建自己的容器,请勿在容器中安装驱动程序

安装 cuda 是否足以安装在容器中,或者我应该安装 cuda-toolkit 因为它包含更多附加软件包?

您可能不想cuda在这种情况下安装。您可以在主机中cuda安装(这也会安装问题 1 中提到的驱动程序)。这是可以接受的。在容器中,如果是自己构建的话,就不想安装了,最多就是.cudacuda-toolkit

我可以仅对基于 docker 的系统的主机使用 nvidia 驱动程序吗?

除了 Linux 操作系统安装之外,主机中通常还需要 3 个项目,以使其为支持 CUDA 的容器使用做好准备:

  1. GPU 驱动程序
  2. 最近的 docker 版本
  3. NVIDIA 容器工具包(请参阅上面的链接了解安装说明)

主机中无需安装CUDA工具包(即GPU驱动安装之外的项目)。如果容器中需要的话,它们通常会安装在容器中。