套模板网站建设,网站开发招聘职位,企业网站建设发展历程,哪些网站可以免费申请CUDA 是 NVIDIA 推出的并行计算平台和编程模型#xff0c;利用 GPU 多核心架构加速计算任务#xff0c;广泛应用于深度学习、科学计算等领域。cuDNN 是基于 CUDA 的深度神经网络加速库#xff0c;为深度学习框架提供高效卷积、池化等操作的优化实现#xff0c;提升模型训练…CUDA 是 NVIDIA 推出的并行计算平台和编程模型利用 GPU 多核心架构加速计算任务广泛应用于深度学习、科学计算等领域。cuDNN 是基于 CUDA 的深度神经网络加速库为深度学习框架提供高效卷积、池化等操作的优化实现提升模型训练和推理速度。
近年来容器技术的迅速发展使得开发者在搭建开发环境时越来越多地采用容器化方案。首先容器可以独立配置开发环境从而避免不同项目和技术之间的环境冲突其次它们能够有效保护主机环境防止因配置错误而导致系统崩溃。因此本文将详细介绍如何在 Ubuntu 系统中利用Docker 容器创建支持 GPU、CUDA 和 cuDNN 的环境。小编将分享自己的搭建经验和具体步骤帮助刚入门的同学们避开常见的陷阱更加高效地进行后续的开发工作。
搭建环境
操作系统Ubuntu24.04
显卡Nvidia GeForce GTX 3060
Nvidia CUDADocker 的软件结构
为了在主机上正常运行 NVIDIA GPU 驱动并通过 Docker 调用 CUDA 驱动需要在 Docker 之上额外实现一层支持以确保 GPU 能够被正确使用。在创建的 Docker 容器中会虚拟出一个 CUDA 驱动环境从而允许在容器内安装 CUDA Toolkit 和 cuDNN。
搭建步骤
主机安装 Nvidia GPU 驱动 主机安装 Docker Engine 以及 Docker Compose 安装 nvidia-docker 创建容器。
安装 Nvidia GPU 驱动 1.1 使用 apt 安装
检测和列出推荐硬件驱动程序
sudo apt update
sudo ubuntu-drivers devicessudo以管理员权限运行命令确保有足够的权限访问硬件信息。 ubuntu-driversUbuntu 提供的工具用于管理硬件驱动程序。 devices指定操作列出系统中的硬件设备及其推荐驱动程序。
选择需要的驱动程序进行安装 上图中显示 550 是推荐版本那我们就安装 550 版本
sudo apt install nvidia-driver-550小编之前已经安装过了所以显示
或者使用如下命令自动安装推荐硬件驱动程序不推荐
sudo ubuntu-drivers autoinstall1.2 如想手动安装请打开 NVIDIA 网站选择合适版本下载 链接https://www.nvidia.cn/drivers/lookup/
安装完成并重启电脑后运行命令
nvidia-smi如果成功则显示如下信息
安装 Docker 链接https://docs.docker.com/engine/install/ubuntu/ 一般我们只需要 Docker EngineDocker Compose 可选建议安装 如果不是第一次安装需要先卸载旧版本
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done设置 Docker 库
# Add Dockers official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod ar /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release echo ${UBUNTU_CODENAME:-$VERSION_CODENAME}) stable | \sudo tee /etc/apt/sources.list.d/docker.list /dev/null
sudo apt-get update安装最新版本 Docker 包已包含 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin小编已安装如下所示 运行 hello-word 镜像验证是否安装成功
sudo docker run hello-world如下显示表示 Docker Engine 已经安装成功
检查 Docker Compose 是否成功安装
docker compose version安装 NVIDIA Container Toolkit 链接https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
NVIDIA Container Toolkit 是 NVIDIA 推出的一套工具集旨在为容器化应用提供 GPU 加速支持。它能够使用户在容器环境中高效地构建和运行 GPU 加速的应用程序尤其适用于借助 Docker 或其他容器运行时来处理依赖 NVIDIA GPU 的任务比如深度学习训练、科学计算模拟等场景。
Configure the production repository
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 update安装软件包
sudo apt install -y nvidia-container-toolkit小编已安装如下所示
检查 NVIDIA Container Toolkit 是否正确安装
nvidia-ctk --version显示如下
配置 Docker 使用 nvidia-ctk 配置 Docker 运行时
sudo nvidia-ctk runtime configure --runtimedocker
sudo systemctl restart docker运行测试容器 在 链接https://hub.docker.com/r/nvidia/cuda/tags 中按照主机的 CUDA 版本选择合适的镜像
小编的 CUDA 版本是 12.4
所以选择了 12.4.1-base-ubuntu22.04 进行测试
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smidocker run这是Docker的核心命令用于启动一个新的容器。 –rm这个选项表示在容器退出后自动删除容器。这有助于避免容器在运行结束后仍然占用系统资源。 –gpus all这个选项用于启用Docker容器对NVIDIA GPU的访问。all表示将所有可用的GPU分配给容器。这需要你的系统安装了NVIDIA Docker runtime并且支持CUDA。 nvidia/cuda:12.4.1-base-ubuntu22.04这是Docker镜像的名称和版本。nvidia/cuda是NVIDIA官方提供的CUDA镜像12.4.1是CUDA的版本号base-ubuntu22.04表示这个镜像是基于Ubuntu 22.04的操作系统。 nvidia-smi这是容器启动后要运行的命令。nvidia-smi是NVIDIA System Management Interface的缩写用于显示GPU的状态信息包括GPU利用率、内存使用情况、温度等。
结果如下 创建 cuDNN 容器 上一步我们在 Docker Hub 上 nvidia/cuda Docker 镜像的标签页选择的是 base 镜像如果需要 cuDNN 选择相应的包含 cuDNN 的镜像即可。此处小编选择 12.4.1-cudnn-devel-ubuntu22.04 镜像进行拉取
docker pull nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04-cudnn: 这个后缀表示该镜像除了包含 CUDA 工具包之外还预装了 cuDNN (NVIDIA CUDA Deep Neural Network library)。cuDNN 是一个专门为深度学习优化的 CUDA 加速库提供了高效的神经网络计算基本模块。 -devel: 这个后缀表明这是一个 开发 (development) 版本 的镜像。通常带有 -devel 标签的镜像会包含编译 CUDA 和 cuDNN 程序所需的头文件、库文件以及其他开发工具例如编译器。这使得你可以在这个镜像内部构建你的 CUDA 和深度学习应用程序。
显示如下
运行容器
docker run --gpus all -it --name test nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04显示如下 测试 cuDNN 是否安装成功查看对应的文件是否存在
find /usr/lib/x86_64-linux-gnu/ -name libcudnn*显示如下
至此Docker 的 cuDNN 环境已经搭建完毕。
参考 https://www.nvidia.cn/drivers/lookup/ https://docs.docker.com/engine/install/ubuntu/ https://docs.docker.com/compose/install/ https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html