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 << EOFoptions nvidia NVreg_EnablePCIeGen3=1options nvidia NVreg_EnableGpuFirmware=0options nvidia NVreg_OpenRmEnableUnsupportedGpus=1EOFnvidia-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/profileexport PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHsource /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.jsoncp 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 全排列

思路&#xff1a;这是一道暴力搜索问题&#xff0c;我们需要列出答案的所有可能组合。 题目给我们一个数组&#xff0c;我们很容易想到的做法是将数组中的元素进行排列&#xff0c;如何区分已选中和未选中的元素&#xff0c;容易想到的是建立一个标记数组&#xff0c;已经选中的…

二轴机器人装箱机:重塑物流效率,精准灵活,引领未来装箱新潮流

在现代化物流领域&#xff0c;高效、精准与灵活性无疑是各大企业追求的核心目标。而在这个日益追求自动化的时代&#xff0c;二轴机器人装箱机凭借其较佳的性能和出色的表现&#xff0c;正逐渐成为装箱作业的得力助手&#xff0c;引领着未来装箱新潮流。 一、高效&#xff1a;重…

解析桥式整流电路

下面这个桥式整流电路出场率很高&#xff0c;看着一定眼熟。 事实证明&#xff0c;强行灌输的东西总是难以下咽。记得读书那会&#xff0c;第一次看到这个电路时被吓到了&#xff0c;以至于直到这门课结束了也没搞清楚。 本文就来分析一下此电路中电流的走向&#xff0c;进而理…

Spark SQL 的总体工作流程

Spark SQL 是 Apache Spark 的一个模块,它提供了处理结构化和半结构化数据的能力。通过 Spark SQL,用户可以使用 SQL 语言或 DataFrame API 来执行数据查询和分析。这个模块允许开发者将 SQL 查询与 Spark 的数据处理能力结合起来,实现高效、优化的数据处理。下面是 Spark S…

Labview绘制柱状图

废话不多说&#xff0c;直接上图 我喜欢用NXG风格&#xff0c;这里我个人选的是xy图。 点击箭头指的地方 选择直方图 插值选择第一个 直方图类型我选的是第二个效果如图。 程序部分如图。 最后吐槽一句&#xff0c;现在看CSDN好多文章都要收费了&#xff0c;哪怕一些简单的入…

Spark SQL----ANSI Compliance

Spark SQL----ANSI Compliance 一、算术运算二、Cast2.1 Rounding in cast 三、存储分配四、Type coercion4.1 类型提升和优先级4.2 最不常见类型解析 五、SQL函数5.1 函数调用5.2 具有不同行为的函数 六、SQL操作符七、ANSI模式的有用函数八、SQL关键字(可选&#xff0c;默认禁…

浪子易支付最新增加订单投诉版源码

此版本增加了订单投诉功能&#xff0c;和一个好看的二次元模板。

【Python实战因果推断】9_元学习器4

目录 Double/Debiased Machine Learning Double/Debiased Machine Learning Double/Debiased ML 或 R-learner 可以看作是 FrischWaugh-Lovell 定理的改进版。其思路非常简单--在构建结果和治疗残差时使用 ML 模型 结果和干预残差&#xff1a; , 预估&#xff0c;预估 由于 …

Python28-4 KNN近邻算法

KNN&#xff08;K-Nearest Neighbors&#xff09;算法是一种常用的机器学习算法&#xff0c;主要用于分类和回归问题。 1. KNN算法的基本概念 KNN算法是一种基于实例的学习算法&#xff0c;也称为惰性学习&#xff08;Lazy Learning&#xff09;算法&#xff0c;因为它在训练…

51单片机第17步_外部中断

本章重点学习外部中断。 1、外部中断0框图&#xff1a; 2、外部中断1框图&#xff1a; 3、Keil C51中有一些关键字&#xff0c;需要牢记&#xff1a; interrupt 0&#xff1a;指定当前函数为外部中断0&#xff1b; interrupt 1&#xff1a;指定当前函数为定时器0中断&#x…

2 z变换与离散时间傅里叶变换

目录 序列的z变换 z变换的定义 常用典型序列的z变换 序列类型与z变换的收敛域 序列的分类 X(z)的极点与收敛域 单边序列 双边序列 z变换的性质 线性 序列移位 单边序列 双边序列 z域尺度变换 序列乘以n 复共轭序列的z变换 初值定理 终值定理 时域卷积定理 …

Spring事务及其传播机制(二)

目录 1.Transcational详解 1.1 rollbackFor 2事务隔离级别 2.1MySQL事务隔离级别回顾 2.2Spring事务隔离级别 3.Spring事务传播机制 3.1什么是事务传播机制 3.2事务的传播机制有哪些 3.3 Spring 事务传播机制使用和各种场景演示 3.3.1 REQUIRED(加入事务) 3.3.2 REQ…

Apache ZooKeeper 简介

介绍 Apache ZooKeeper 是一种分布式协调服务&#xff0c;旨在管理和同步大量分布式应用程序。ZooKeeper 是 Apache 软件基金会下的一个开源项目&#xff0c;它解决了维护分布式应用程序的配置信息、命名、分布式同步和组服务的复杂性。本文探讨了 ZooKeeper 的架构、功能、应…

商标字体的选择:企业和个人申请注册商标攻略!

对于汉字商标&#xff0c;就会涉及到字体的选择&#xff0c;普推商标老杨也经常看到企业因为文字商标字体侵权收到相关字体公司的律师函&#xff0c;所以商标字体选择上要特别注意。 建议选择可以商用的免费字体&#xff0c;常见的有黑体、宋体等&#xff0c;如果这些字体前面…

基于matlab的可乐标签模板匹配

1 建模思路 1.图像预处理&#xff1a; 如果目标图像和模板图像是彩色的&#xff08;即RGB图像&#xff09;&#xff0c;则将它们转换为灰度图像&#xff0c;以便在单通道上进行匹配。使用rgb2gray函数进行灰度化。 2.获取模板大小&#xff1a; 使用size函数获取模板图像的高…

2000-2022年上市公司数字化转型与绿色创新质量匹配数据(含控制变量)

2000-2022年上市公司数字化转型与绿色创新质量匹配数据&#xff08;含控制变量&#xff09;https://download.csdn.net/download/a519573917/89501000 目录 上市公司数字化转型与绿色创新质量匹配的实证研究 一、引言 二、文献综述 三、实证模型 四、数据来源与描述性统计 …

tomcat8.5在windows下运行出现日志中文乱码

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

Linux 2-Vim使用

1 什么是vi及vim&#xff1f; vi是文本编辑器&#xff1b;vim是程序开发工具。 2 vi的几种模式 1 一般模式&#xff1a;vi <fileName> 就进入命令模式&#xff0c;可以删除或者复制粘贴 2 编辑模式&#xff1a;修改内容 3 命令行模式&#xff1a;最下面一行&#xf…

NetSuite Amount正负符号在Saved Search和DataSet中的不同含义

近期在一个项目中碰到Amount取值的Bug&#xff0c;原因是我们的代码中数据源从Saved Search转为了DataSet&#xff0c;由于这个转换导致了Amount的正负值混乱。今天记录一下。 正负号原则 • Saved Search&#xff0c; Amount的正负需要考虑科目类型。 Amount字段根据科目类型…

昇思25天学习打卡营第10天 | 基于MindNLP+MusicGen生成自己的个性化音乐

基于MindNLPMusicGen生成自己的个性化音乐 MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型&#xff08;LM&#xff09;的音乐生成模型&#xff0c;能够根据文本描述或音频提示生成高质量的音乐样本&#xff0c;相关研究成果参考论文《Simple and Controllable …