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

文章目录

  • centos 7.9 离线环境安装GPU服务环境
      • 系统配置
      • 更新 gcc
      • 更新内核
      • 安装显卡驱动
      • 安装cuda
      • 安装docker 和 nvidia-container-runtime
      • 验证

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

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

系统配置

limits.conf 配置

$ vim /etc/security/limits.conf

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

sysctl.conf 配置

$ 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

关闭防火墙

systemctl stop firewalld 
systemctl disable firewalld

更新 gcc

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

各种gnu环境相关依赖地址

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

$ yum localinstall ./*.rpm

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

在这里插入图片描述

第一步:挂载安装光盘

$ mount /dev/*.iso /mnt/os

第二步:编辑repo yum源文件

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

第三步:检查yum makecache

$ yum makecache

在这里插入图片描述

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

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

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

配置好yum repo 后 执行

$ yum install gcc -y # 即可

更新内核

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

  1. 卸载内核

    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 包

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

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

      $ 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

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 cuda_11.4.1_470.57.02_linux.run

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

#等待安装完成

在这里插入图片描述
在这里插入图片描述

#添加环境变量
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

    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 包

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

    {
      "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镜像,执行

docker run -it image  nvidia-smi

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/760872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详细分析Oracle修改默认的时间格式(四种方式)

目录 前言1. 会话级别2. 系统级别3. 环境配置4. 函数格式化5. 总结 前言 默认的日期和时间格式由参数NLS_DATE_FORMAT控制 如果需要修改默认的时间格式&#xff0c;可以通过修改会话级别或系统级别的参数来实现 1. 会话级别 在当前会话中设置日期格式&#xff0c;这只会影响…

ThreeJS-3D教学十二:ShaderMaterial

一、首先 Shader 是做什么的 Shader 可以自定义每个顶点、每个片元/像素如何显示&#xff0c;而控制顶点和片元显示是通过设置 vertexShader 顶点着色器和 fragmentShader 片元着色器&#xff0c;这两个着色器用在 ShaderMaterial 和 RawShaderMaterial 材质上。 我们先看一个例…

Web后端开发之前后端交互

http协议 http ● 超文本传输协议 &#xff08;HyperText Transfer Protocol&#xff09;服务器传输超文本到本地浏览器的传送协议 是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。 HTTP是一个基于TCP/IP通信协议来传递数据. HTT…

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目…

Oracle、MySQL、PostGreSQL中的多版本读取一致性

multi-version read consistency in Oracle、MySQL、PostGreSQL 在多人同时访问与修改数据时&#xff0c; 最大的难题之一是&#xff1a;一方面要力争最大的并发访问&#xff0c;与此同时还要确保每个用户能以一致的方式读取和修改数据。 ANSI/ISO SQL 标准定义了4 种事务隔离…

“吃饭大学”!中国大学食堂排行TOP10(含西电)

同学们们&#xff0c;考研择校考虑的因素除了学术&#xff0c;地理位置等方面&#xff0c;你们还会考虑哪些因素呢&#xff1f;小研作为一个吃货&#xff0c;必定会考虑的一个因素当然是大学的食堂美食啊~ 那中国超级好吃的大学食堂在哪&#xff1f;一起来看看有没有你的目标院…

input调用手机摄像头实现拍照功能vue

项目需要一个拍照功能&#xff0c;实现功能如下图所示:若使用浏览器则可以直接上传图片&#xff0c;若使用手机则调用手机摄像头拍照。 1.代码结构 <!--input标签--> <input ref"photoRef"type"file"accept"image/*"capture"envir…

4-数据提取方法2(xpath和lxml)(6节课学会爬虫)

4-数据提取方法2&#xff08;xpath和lxml&#xff09;&#xff08;6节课学会爬虫&#xff09; 1&#xff0c;Xpath语法&#xff1a;&#xff08;1&#xff09;选择节点&#xff08;标签&#xff09;&#xff08;2&#xff09;“//”:能从任意节点开始选择&#xff08;3&#xf…

业务链SFC简介

目录 业务链&#xff08;SFC&#xff09;简介什么是业务链&#xff1f;业务链的体系架构业务链的基本工作流程PBRPBR实现的SFC工作流程 NSHNSH报文NSH实现的SFC工作流程 区别 业务链的应用 配置指南 业务链&#xff08;SFC&#xff09;简介 业务链是网络功能虚拟化&#xff08…

华为DCN网络之:VXLAN

VXLAN RFC定义了VLAN扩展方案VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff0c;虚拟扩展局域网&#xff09;。VXLAN采用MAC in UDP封装方式&#xff0c;是NVO3&#xff08;Network Virtualization over Layer 3&#xff09;中的一种网络虚拟化技术。 VXLAN…

【前端】从零开始学习编写HTML

目录 一、什么是前端 二、什么是HTML 三、HTML文件的基本结构 四、HTML常见标签 4.1 注释标签 4.2 标题标签 4.3 段落标签 4.4 换行标签 4.5 格式化标签 4.6 图片标签 4.7 超链接标签 4.8 表格标签 4.9 列表标签 4.10 表单标签 &#xff08;1&#xff09;form标…

介绍两个压测工具pgbench\sysbench,可视化监控工具NMON

性能评估做不好&#xff0c;开会又领导点名叼了。/(ㄒoㄒ)/~~ /(ㄒoㄒ)/~~ /(ㄒoㄒ)/~~ 挨叼了&#xff0c;也要写文章&#xff0c;记录下我的笔记。 写篇文章 对数据库、OS性能的性能评估&#xff0c;需要选择合适的压测工具&#xff0c;给找出数据库的运行瓶颈 pgbench 这是…

Redis 集群模式

一、集群模式概述 Redis 中哨兵模式虽然提高了系统的可用性&#xff0c;但是真正存储数据的还是主节点和从节点&#xff0c;并且每个节点都存储了全量的数据&#xff0c;此时&#xff0c;如果数据量过大&#xff0c;接近或超出了 主节点 / 从节点机器的物理内存&#xff0c;就…

【每日刷题】Day78

【每日刷题】Day78 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 1608. 特殊数组的特征值 - 力扣&#xff08;LeetCode&#xff09; 2. 1385. 两个数组间的距离值 - …

实现胶囊神经网络,识别手写MNIST数据集,谈谈实现及理解。

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

在安装HDFS过程中遇见Permission denied

HDFS Shell命令权限不足问题解决 问题 想必有同学在实战Shell的时候&#xff0c;遇到了&#xff1a; Permission denied: userroot, accessWRITE, inode"/":hadoop:supergroup:drwxr-xr-x 这种类似的问题。 问题的原因就是没有权限&#xff0c;那么为什么呢&#…

C# OpenCvSharp 实现Reinhard颜色迁移算法

C# OpenCvSharp 实现Reinhard颜色迁移算法 目录 效果 项目 代码 下载 效果 项目 Reinhard颜色迁移算法的步骤&#xff1a; 1、将参考图片和目标图片转换到LAB空间下 2、得到参考图片和目标图片的均值和标准差 3、对目标图片的每一个像素值&#xff0c;减去目标图像均值然后…

【数据结构(邓俊辉)学习笔记】二叉搜索树04——AVL树

文章目录 1.重平衡1.1 AVL BBST1.2 平衡因子1.3 适度平衡1.4 接口1.5 失衡 复衡 2. 插入2.1 单旋2.2 双旋2.3 实现 3. 删除3.1 单旋3.2 双旋3.3 实现 4. &#xff08;3 4&#xff09;-重构4.1 "34"重构4.2 "34"实现4.3 rotateAt4.4 综合评价 1.重平衡 1…

自动雪深传感器的类型

TH-XL2随着科技的飞速发展&#xff0c;气象监测技术也在不断进步。在降雪天气频发的冬季&#xff0c;雪深数据对于保障道路交通、农业生产和电力供应等具有至关重要的作用。自动雪深传感器作为气象监测的重要工具&#xff0c;其类型多样、功能各异&#xff0c;为气象数据的准确…

让GNSSRTK不再难【第17讲 RTK定位技术原理-站间单差浮点解--第1部分】

第17讲 RTK定位技术原理-站间单差浮点解 RTK技术其实就是在RTD技术的基础上增加载波观测值的使用。由于伪距的误差在分米量级&#xff0c;即使我们通过站间单差消除掉绝大部分的伪距误差&#xff0c;但受限于伪距的精度&#xff0c;我们也只能达到分米量级的定位水平。 但载波…