小工具知识网

当前位置: 首页 > 行业知识 > 【深度学习】构建无与伦比的深度学习环境:在CentOS上实现GPU资源管理容器的终极指南

行业知识

【深度学习】构建无与伦比的深度学习环境:在CentOS上实现GPU资源管理容器的终极指南

2026-11-11 10:29:43 来源:互联网转载

构建无与伦比的深度学习环境:在CentOS上实现GPU资源管理容器的终极指南

大家好 我是寸铁

构建无与伦比的深度学习环境:在CentOS上实现GPU资源管理容器的终极指南✨

喜欢的小伙伴可以点点关注

前言

这篇博文将深入探讨在CentOS操作系统上创建高度优化的深度学习环境的完整过程。我们将从零开始,逐步指导读者完成配置,并重点介绍如何有效地管理 GPU 资源,以及如何运用容器技术来提高环境的灵活性和可维护性。

本文旨在为初学者提供一站式的解决方案,无论你是否有经验,都能够轻松地搭建出功能强大、高效稳定的深度学习环境。

Nvidia驱动安装

由于需要跑深度学习程序,需要用到GPU也就是显卡,所以需要安装Nvidia驱动来进行操作。

又需要部署到容器上跑,所以需要安装nvidia-docker指定具体的GPU跑程序。

安装驱动

  • 先下载ELRepo仓库的GPG密钥
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

    这个命令将从https://www.elrepo.org/RPM-GPG-KEY-elrepo.org下载ELRepo仓库的GPG密钥,并将其导入到本地系统中。这样做是为了验证从ELRepo仓库下载的软件包的真实性和完整性。


    • 再安装ELRepo仓库
      rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

      这个命令将从http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm下载ELRepo仓库的软件包,并将其安装到系统中。这个软件包包含了配置ELRepo仓库所需的信息,比如仓库地址和GPG密钥等。


      • 在ELRepo仓库中安装nvidia软件包
        yum install kmod-nvidia

        这个命令使用yum包管理器从ELRepo仓库中安装kmod-nvidia软件包,这个软件包通常是NVIDIA显卡的内核模块驱动程序。安装这个软件包可以让系统支持NVIDIA显卡,并提供相应的驱动程序支持。


        • 再进行重启
          reboot

          检测安装情况

          • 显示显卡的基本情况
            ls -la /dev | grep nvidia

            • 显示GPU的使用情况和性能信息
              nvidia-smi

              Nvidia-docker安装

              安装步骤

              • 如果您还没有安装 Docker,可以使用以下命令在CentOS上安装 Docker:
                sudo yum install docker

                • 启用 NVIDIA 容器运行时仓库:运行以下命令以添加 NVIDIA 的仓库
                  distribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \  sudo tee /etc/yum.repos.d/nvidia-docker.repo

                  运行结果如下:


                  • 安装 nvidia-docker2:运行以下命令来安装 nvidia-docker2:
                    sudo yum install -y nvidia-docker2

                    运行结果如下:


                    • 重启 Docker 服务:以使更改生效
                      sudo systemctl restart docker

                      运行结果如下:


                      验证安装

                      (1) 先拉取nvidia的镜像

                      docker pull nvidia/cuda:11.4.3-base-centos7 

                      更多的镜像如下网址:

                      https://hub.docker.com/r/nvidia/cuda/tags?page=7&page_size=&name=&ordering=

                      (2) 再验证nvidia-docker2是否正确安装:

                      docker run --gpus 1 nvidia/cuda:11.4.3-base-centos7 nvidia-smi

                      这个命令的意思是在一个Docker容器中运行nvidia-smi命令,并且指定使用1个GPU。

                      具体如下:

                      docker run: 运行Docker容器的命令。

                      --gpus 1: 指定使用1个GPU。这个参数告诉Docker要将一个GPU分配给容器。

                      nvidia/cuda:11.4.3-base-centos7: 这是要运行的Docker镜像的名称和标签。这个镜像是NVIDIA提供的一个包含CUDA工具和运行时的基本镜像,基于CentOS 7操作系统。

                      nvidia-smi: 在NVIDIA GPU上查看GPU状态和相关信息的命令。在这个命令中,它将在Docker容器内运行。


                      运行结果如下:

                      说明安装成功!


                      GPU命令

                      查看显卡情况

                      ls -la /dev | grep nvidia

                      使用GPU

                      # 使用所有GPUdocker run --gpus all nvidia/cuda:11.4.3-base-centos7 nvidia-smi# 使用两个GPUdocker run --gpus 2 nvidia/cuda:11.4.3-base-centos7 nvidia-smi# 指定GPU运行docker run --gpus '"device=0"' nvidia/cuda:11.4.3-base-centos7 nvidia-smidocker run --gpus '"device=0,1"' nvidia/cuda:11.4.3-base-centos7 nvidia-smidocker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:11.4.3-base-centos7 nvidia-smi

                      其中11.4.3-base-centos7替换为你操作系统对应的镜像,如CentOs、Ubantu等等安装的各种版本的镜像,根据安装的镜像进行替换即可。镜像也可以是自己其他打包好的镜像源。


                      测试GPU运行情况

                      1. 编写docker File文件

                      2. 使用打包好的docker File镜像进行测试

                      3. 在容器中分配GPU运行

                      具体如下:

                      • 指定第一个GPU运行深度学习的pytorch程序
                        docker run -it --rm --gpus '"device=0"'--entrypoint /bin/bash gcn_tsa_image

                        -it:允许与容器的标准输入进行交互,并分配一个伪终端。

                        --rm:容器退出后自动删除。

                        '"device=0"' 指定具体是哪个GPU来跑程序,这里指定显卡0来跑

                        '"device=0,1"' 指定具体多个GPU来跑程序,这里指定显卡0、1来跑

                        --gpus all:指定容器可以访问所有可用的 GPU 设备。您还可以使用 --gpus device= 来指定特定的 GPU 设备。

                        --entrypoint /bin/bash:设置容器的入口点为 /bin/bash,这样当容器启动时会直接进入交互式的 bash shell。

                        • 查看是否真正运用到显卡
                          nvidia-smi

                          确实是使用到显卡来跑Pytorch程序了~


                          看到这里的小伙伴,恭喜你又掌握了一个技能

                          希望大家能取得胜利,坚持就是胜利

                          我是寸铁!我们下期再见


                          往期好文

                          保姆级教程

                          【保姆级教程】Windows11下go-zero的etcd安装与初步使用

                          【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

                          【Go-Zero】手把手带你在goland中创建api文件并设置高亮


                          报错解决

                          【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项

                          【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

                          【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

                          【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

                          【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

                          【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

                          【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


                          Go面试向

                          【Go面试向】defer与time.sleep初探

                          【Go面试向】defer与return的执行顺序初探

                          【Go面试向】Go程序的执行顺序

                          【Go面试向】rune和byte类型的认识与使用

                          【Go面试向】实现map稳定的有序遍历的方式

上一篇:揭秘京东公司全称背后的电商巨头传奇故事!

下一篇:揭秘文件源码打包全过程,细节揭秘,轻松掌握!