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](https://ftp.gnu.org/gnu/gcc/)) [各种gnu环境相关依赖地址](https://ftp.gnu.org/gnu/) 我这里使用的 gcc9 的包,里面是携带好了依赖包的,可以通过解压后直接执行(上面的地址需要自己处理依赖包,缺啥下啥就行) ```bash $ yum localinstall ./*.rpm ``` 直接 执行 localinstall 命令,可能会出现依赖问题报错,可以在本地搭建yum 仓库,把rpm 包都扔到仓库里面再执行 yum install 命令(缺基础环境时,可以吧centos 的iso 镜像挂载到服务器上作为yum仓库) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a5a4d3ceb7cf4739adc4ae669762bbcf.png) 第一步:挂载安装光盘 ```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](https://so.csdn.net/so/search?q=yum&spm=1001.2101.3001.7020) makecache ```bash $ yum makecache ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/ce05885cc5bb4b3d89e81c394b8361e2.png) 出现这个就代表搭建成功了 可以把 你要用到的 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 查看 #### 安装显卡驱动 [官网显卡驱动下载地址](https://www.nvidia.com/Download/index.aspx?lang=en-us) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/738e1f20553a47bcab41ea7a8e74d582.png) 红框部分根据需要选择,然后点击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 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/72af93e87bde4376a2c15e08dfd86dc9.png) 出现这个就成功了 #### 安装cuda [cuda 下载官网](https://developer.nvidia.com/cuda-downloads) 根据图中红框部分根据具体情况选择(如选择centos版本或ubuntu版本),因为前面安装好了驱动,所以这里只单独安装cuda ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e156659ff7a149b59d283bad6e7042d8.png) ```sh sh cuda_11.4.1_470.57.02_linux.run #只选择安装CUDA ToolKit 11.4 具体安装如下图,其他不要安装 切记!!!开始会解压一小会儿,弹窗让你选择安装哪些东西,我们只需要cuda_toolkit,上下方向键和enter键控制勾掉不需要的安装,cuda里面也有驱动,一定要取消掉,不然会有冲突,大约几分钟后就安装好,安装目录一般为/usr/local/cuda-11.4 #等待安装完成 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a691775ec91f40d1be5d0d2814aa018c.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/859e16f32e244825b0a998208d083bbc.png) ```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,如下图所示 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e2cf63c79b5e4edbb7cda38b83759473.png) #### 安装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

相关推荐
宇钶宇夕34 分钟前
MODBUS RTU通信协议详解与调试指南
运维·程序人生·自动化
maomi_952637 分钟前
操作系统之EXT文件系统
linux·服务器
小羊Linux客栈3 小时前
自动化:批量文件重命名
运维·人工智能·python·自动化·游戏程序
伤不起bb4 小时前
MySQL 高可用
linux·运维·数据库·mysql·安全·高可用
whgjjim6 小时前
docker迅雷自定义端口号、登录用户名密码
运维·docker·容器
tmacfrank7 小时前
网络编程中的直接内存与零拷贝
java·linux·网络
瀚高PG实验室9 小时前
连接指定数据库时提示not currently accepting connections
运维·数据库
QQ2740287569 小时前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
淡忘_cx9 小时前
【frp XTCP 穿透配置教程
运维
qwfys2009 小时前
How to configure Linux mint desktop
linux·desktop·configure·mint