Debian 主机上的 Docker Ubuntu 容器,具有自定义 CUDA/cuDNN

Debian 主机上的 Docker Ubuntu 容器,具有自定义 CUDA/cuDNN

我可以访问 Debian 11 服务器,其中安装了一些任意 NVIDIA 驱动程序和 CUDA 版本。然而,由于许多人使用服务器,因此许多人需要不同版本的 CUDA 和 cuDNN。所以我决定在docker中隔离我的环境,从图像创建一个容器这里

根据网上的指南,主机必须安装(fulfilled)NVIDIA驱动并nvidia-container-toolkit安装(fulfilled)。然后,我通过执行以下命令从图像创建了一个容器:

docker run -it --rm --gpus all nvidia/cuda:11.2.0-cudnn8-runtime-ubuntu20.04

当我连接到图像时,我可以成功运行nvidia-smi,但是CUDA的版本与主机系统上的相同,并且cuDNN似乎根本不存在(主机目前也没有cuDNN),但是如果我理解正确的话,该映像应该包含预安装的两者。

知道我做错了什么或者如何实现具有特定 CUDA/cuDNN 以及驱动程序版本(如有必要)的隔离容器?

答案1

我不知道为什么nvidia-smi从容器内部调用显示的 CUDA 版本显示主机的 CUDA 版本,但我发现我在错误的位置寻找 cuDNN: https://github.com/NVIDIA/nvidia-docker/issues/53 看起来图像的效果应该是这样的。 (我还安装了nvidia-docker2)

由于某种原因,我得到的训练时间非常慢,但我需要对此进行更多研究,它似乎与图像的配置没有任何关系(至少 GPU 可以被 Tensorflow 正确地看到)。

相关内容