centos 7.9 离线环境安装GPU服务环境

文章目录

centos 7.9 离线环境安装GPU服务环境

基于centos 7.9 离线安装gpu 服务基础环境,用于在docker 中运行算法服务

系统配置

limits.conf 配置

sh 复制代码
$ vim /etc/security/limits.conf

*  soft nofile   1024000
*  hard nofile   1024000
*  soft nproc   1024000
*  hard nproc   1024000

sysctl.conf 配置

sh 复制代码
$ vim  /etc/sysctl.conf
#内核默认参数
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.sem=500 64000 64 256
##打开文件数参数(20*1024*1024)
fs.file-max= 20971520
##WEB Server参数
net.ipv4.tcp_tw_reuse=1
#net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_time=1200
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_rmem=4096 87380 8388608
net.ipv4.tcp_wmem=4096 87380 8388608
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_max_tw_buckets = 5000
##TCP补充参数
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 65535
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
##禁用ipv6
net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1
##swap使用率优化
vm.swappiness=0
fs.inotify.max_user_watches = 1048576

关闭防火墙

sh 复制代码
systemctl stop firewalld 
systemctl disable firewalld

更新 gcc

[gcc 环境下载地址](Index of /gnu/gcc)

各种gnu环境相关依赖地址

我这里使用的 gcc9 的包,里面是携带好了依赖包的,可以通过解压后直接执行(上面的地址需要自己处理依赖包,缺啥下啥就行)

bash 复制代码
$ yum localinstall ./*.rpm

直接 执行 localinstall 命令,可能会出现依赖问题报错,可以在本地搭建yum 仓库,把rpm 包都扔到仓库里面再执行 yum install 命令(缺基础环境时,可以吧centos 的iso 镜像挂载到服务器上作为yum仓库)

第一步:挂载安装光盘

bash 复制代码
$ mount /dev/*.iso /mnt/os

第二步:编辑repo yum源文件

bash 复制代码
$ cd /etc/yum.repos.d/
$ mkdir backup
$ mv *.repo backup/ #备份原repo文件
$ vim local.repo
shell 复制代码
[local]
name=local
baseurl=file:///mnt/os   # 目录
gpgcheck=0   # 跳过检查
enabled=1    # 启用

第三步:检查yum makecache

bash 复制代码
$ yum makecache

出现这个就代表搭建成功了

可以把 你要用到的 rpm 包直接放到 /mnt/os/Package 目录下,就可以直接下载了,但是不太建议这么干。可以重新再弄一个本地repo

sh 复制代码
1. 创建一个目录
$ mkdir /mnt/local-repo
2. 创建 repodata 
$ cd  /mnt/local-repo
$ createrepo .    # 创建repo的配置包  repodata 目录
3. 安装上述编辑 repo yum 配置文件即可

配置好yum repo 后 执行

sh 复制代码
$ yum install gcc -y # 即可

更新内核

更新内核需要先卸载内核,但是卸载完内核后,若未安装新的内核,重启服务器,那么就重装系统吧

  1. 卸载内核

    sh 复制代码
    rpm -e kernel-headers --nodeps
    rpm -e kernel-devel --nodeps
    rpm -e kernel-tools-libs --nodeps
    rpm -e kernel --nodeps
    rpm -e kernel-tools --nodeps
  2. 安装新内核

    1. 提前准备好 rpm 包

      sh 复制代码
      # 解压后进入目录
      $ yum localinstall ./*.rpm
    2. rpm 包放入本地yum 仓库中

      sh 复制代码
      $yum install kernel-lt-devel
    3. 查看内核启动顺序、设置内核启动

      sh 复制代码
      $ awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
      $ grub2-set-default 0
    4. reboot(如果是包含GPU的新环境,最好更改完GPU的相关配置再重启机器)

    5. uname -a 查看

安装显卡驱动

官网显卡驱动下载地址

红框部分根据需要选择,然后点击search,点击下载即可

验证检查命令: rpm -qa | grep kernel

sh 复制代码
chmod +x NVIDIA-Linux-x86_64-515.105.01.run
#按需卸载原有驱动(强烈建议使用该方法卸载,卸载的最干净)
./NVIDIA-Linux-x86_64-515.105.01.run --uninstall
#禁用Nouveau驱动(Root权限) 
vi /lib/modprobe.d/dist-blacklist.conf
#添加下列两行
blacklist nouveau
options nouveau modeset=0
# 注释掉
# blacklist nvidiafb
#备份原来的 initramfs-nouveau-image镜像并重新建立initramfs-image文件
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)  # 可能没有源来的镜像,报错无所谓
systemctl set-default multi-user.target
init 3
reboot
#查看是否禁用nouveau成功
lsmod | grep nouveau
#没有信息输出则成功,反之重新操作禁用nouveau操作
#安装驱动
./NVIDIA-Linux-x86_64-515.105.01.run
  #####如果出现安装不上可以使用如下方案
   cat > /etc/modprobe.d/nvidia.conf << EOF
       options nvidia NVreg_EnablePCIeGen3=1
       options nvidia NVreg_EnableGpuFirmware=0
       options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
       EOF
   nvidia-uninstall  后再重新安装
# 然后一直enter,注意弹窗提示,没有error则安装成功,如果出现error,截图反馈到运维
#验证
nvidia-smi

出现这个就成功了

安装cuda

cuda 下载官网

根据图中红框部分根据具体情况选择(如选择centos版本或ubuntu版本),因为前面安装好了驱动,所以这里只单独安装cuda

sh 复制代码
sh cuda_11.4.1_470.57.02_linux.run

#只选择安装CUDA ToolKit 11.4 具体安装如下图,其他不要安装 切记!!!开始会解压一小会儿,弹窗让你选择安装哪些东西,我们只需要cuda_toolkit,上下方向键和enter键控制勾掉不需要的安装,cuda里面也有驱动,一定要取消掉,不然会有冲突,大约几分钟后就安装好,安装目录一般为/usr/local/cuda-11.4

#等待安装完成


SH 复制代码
#添加环境变量
vi /etc/profile

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH


source /etc/profile
#验证: nvcc --version,如下图所示

安装docker 和 nvidia-container-runtime

  1. 离线下载docker.tgz 文件

    我的包里面是包括 systemctl 管理的配置和 docker-compose

    sh 复制代码
    cp ./docker/* /usr/bin/
    rm -rf ./docker
    # 上面是安装docker的
    mkdir -p /etc/systemd/system
    cp docker.service /etc/systemd/system/docker.service
    chmod +x /etc/systemd/system/docker.service
    mkdir -p /etc/docker/
    cp daemon.json /etc/docker/daemon.json
    
    cp docker-compose /usr/local/bin/
    chmod +x /usr/local/bin/docker-compose
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker.service
  2. 安装 nvidia-container-runtime

    在官网或者github 上下载好对应的 nvidia-container-runtime 包,里面是有部分依赖的rpm 包

    sh 复制代码
    可以直接  yum localinstall ./*.rpm 如果报错就直接把rpm 包放到本地repo里面
    yum install nvidia-container-runtime
  3. 修改 daemon.json

    sh 复制代码
    {
      "default-runtime": "nvidia",
      "runtimes": {
    	  "nvidia": {
    		  "path": "nvidia-container-runtime",
    		  "runtimeArgs": []
    	  }
      },
      # 上面的配置是配置 runtimes 的 
      "registry-mirrors": ["https://4p5gxeik.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"],
      "storage-driver": "overlay2",
      "storage-opts":["overlay2.override_kernel_check=true"],
      "log-driver": "json-file",
      "log-opts": {
    	  "max-size": "500m",
    	  "max-file": "3"
      },
      "oom-score-adjust": -1000,
      "bip": "172.20.0.1/16",
      "fixed-cidr": "172.20.0.0/16",
      "metrics-addr" : "0.0.0.0:9323",
      "experimental" : true,
      "default-address-pools": [
      {"base": "10.252.0.0/16", "size": 16},
      {"base": "10.253.0.0/16", "size": 16},
      {"base": "10.254.0.0/16", "size": 16}]
    }

    配置完重启docker即可

验证

安装完后,找一个gpu镜像,执行

sh 复制代码
docker run -it image  nvidia-smi

有正常结果就表示ok,也可以通过python 调用测试下 cuda

相关推荐
m0_7471245328 分钟前
量产工具一一输入系统(二)
linux·imx6ull
这题怎么做?!?35 分钟前
自我反思与暑假及大三上学期规划
linux·数据结构·c++
AncleLeen37 分钟前
ubuntu 22.04下编译安装glog共享库
linux·运维·ubuntu
Killing Vibe42 分钟前
如何无线连接ios,自动化稳定
运维·ios·自动化
UDDD-1 小时前
企业化运维(5)_mysql数据库
运维·数据库·mysql
FIT2CLOUD飞致云1 小时前
1Panel开源面板项目GitHub Star数量突破20,000!
linux·运维·开源·1panel·面板
xintaiideas1 小时前
熟练掌握Docker及linux常用命令排查线上问题。熟悉Git, Maven等项目管理及构建工具,熟悉微服务中基于Jenkins的CI/CD
linux·git·docker
天亮之前_ict1 小时前
我爱服务器——LVM实战学习
运维·服务器·学习
文牧之1 小时前
PostgreSQL的系统视图pg_stat_bgwriter
运维·数据库·postgresql
FU.l2 小时前
Linux-笔记 全志平台休眠功能初探
linux·驱动开发·笔记