在CentOS7.9系统上安装N卡3060驱动、CUDA和离线升级gcc(4.8—>8.3)用以编译框架的过程记录

news2024/11/18 19:40:29

1、更换yum源

主要是在终端操作需要,在显示器界面可以直接联网解决网络问题进行软件安装或更新

""""备份原来的源"""
mv /etc/yum.repos.d/ /etc/yum.repos.d.bak/
mkdir /etc/yum.repos.d
vim /etc/yum.repos.d/xxx.repo
"""更换联网的mirrorlist,涉及http,里面的enable的0 1修改,改完后保存退出"""
yum clean all
yum makecache
yum update -y

关于centos系统设置的一些命令:

"""获取CentOS操作系统版本详细信息"""
cat /etc/centos-release
"""也可用如下"""
lsb_release -a
"""若不行"""
yum install -y redhat-lsb

2、离线安装nvidia显卡驱动

根据显卡的配置,越新越高级的显卡需要的显卡驱动版本越新,老的显卡驱动可能带不动。

yum install kernel-devel kernel-headers -y
"""关闭X-sever"""
sudo service lighttqm stop
或者
sudo stop lighttqm
或者
sudo init 3
"个人以前用过的Centos 系统的关闭命令(带显示器)如下,与ubuntu不同"
systemctl stop gdm.service
"安装好驱动程序后再重启"
systemctl start gdm.service

安装前:
查看显卡信息:

lshw -numeric -C display

预安装:

yum clean all
yum groupinstall "Development tools"
yum install kernel-devel epel-release
yum install dkms

nouveau驱动故障需要更新配置:

vim /etc/default/grub
"""打开文件后在里面修改"""
GRUB_TIMEOUT=5                                                                                                                                      
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"                                                                                   
GRUB_DEFAULT=saved                                                                                                                                  
GRUB_DISABLE_SUBMENU=true                                                                                                                           
GRUB_TERMINAL_OUTPUT="console"                                                                                                                      
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet nouveau.modeset=0"                                                                                  
GRUB_DISABLE_RECOVERY="true"

根据计算机硬件启动方式选择,BIOS或EFI

BIOS:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
EFI:
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

安装:

#The Nvidia drivers must be installed while Xorg server is stopped. Switch to text mode by:
systemctl isolate multi-user.target
#Install the Nvidia driver by executing the following command:
"""安装命令,选择自己下好的离线驱动安装包,执行如下命令"""
bash NVIDIA-Linux-x86_64-*.sh

中间过程:

sudo bash NVIDIA-Linux-x86_64-390.87.run
 """
1、Accept License
2、Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a
different kernel later. -> YES
3、Install NVIDIA’s 32-bit compatibility libraries? -> YES
4、The distribution-provided pre-install script failed! Are you sure you want to continue? -> CONTINUE INSTALLATION
5、An incomplete installation of libglvnd was found. Do you want to install a full copy of libglvnd? This will overwrite any existing libglvnd
libraries. -> Install and overwrite existing files
6、Would you like to run the nvidia-xconfig utility? -> YES
"""
"""安装好之后,重启The Nvidia driver is now installed. Reboot your system:"""

"""重启很重要"""
sudo reboot

这个时候,就基本装完了,想要测试有没有成功就可以执行:

nvidia-smi

装好了就可以看到弹出的信息,如下:
在这里插入图片描述

3、装CUDA和CuDNN

这个已经写过好多安装过程和方法了,不细述,主要问题就是环境变量需要添加到系统,不然无法找到cuda,主要碰到的问题是:
①执行nvcc -V命令时出错
②我在编译过程中碰到的:

/bin/sh: /usr/local/cuda-11.1/bin/nvcc:没有那个文件或目录

这都可以通过下面的方法解决:

cd /usr/local/cuda/bin
vim ~/.bashrc

"添加如下两行命令到文件末尾即可"
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
"保存退出后执行如下命令"

source ~/.bashrc

我觉得走完上述流程可以重启一下机器,再去走后面的

4、离线下载gcc相关依赖并编译(4.8-8.3)

前面所做的工作以及当前的都是为了编译我的框架用的,由于框架编译dcnv2报了gcc版本过低的问题(系统自带4.8),我又看了以前编译过的gcc是5.4,所以选择升级gcc版本。过程有点长
gcc安装包和依赖包下载:
gcc:http://mirror.linux-ia64.org/gnu/gcc/releases/
m4:http://ftp.gnu.org/gnu/m4/
gmp+mpfr+mpc+isl:http://mirror.linux-ia64.org/gnu/gcc/infrastructure/
在这里插入图片描述
gcc安装通过软连接是最方便的
下载离线安装包放到如下位置:

/usr/local/src/
cd /usr/local/src/
tar -zxvf gcc-8.3.0.tar.gz
cd gcc-8.3.0/

"""进入解压后的gcc文件夹,把下载的依赖包拷进去,再对依赖包进行解压"""
tar -xf gmp-6.1.0.tar.bz2 
tar -xf mpfr-3.1.4.tar.bz2
tar -xf mpc-1.0.3.tar.gz
tar -xf isl-0.18.tar.bz2

"""解压后,建立与依赖包的软连接"""
ln -sf gmp-6.1.0 gmp
ln -sf mpfr-3.1.4 mpfr
ln -sf mpc-1.0.3 mpc
ln -sf isl-0.18 isl

"""在当前路径创建编译文件夹build并进入"""
mkdir build && cd build

"""随后开始编译,编译的时间很长,在一小时左右"""
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make && make install

期间碰到automake版本报错问题,版本低要升级,于是编译gcc出错后,重新解决了automake的问题,我升级的是automake1.15

Centos7 WARNING: ‘aclocal-1.15is missing on your system

automake下载路径:https://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
下载到 /usr/local/src 路径下

cd /usr/local/src
"""解压"""
tar -xzf automake-1.15.tar.gz

cd automake-1.15
"""路径配置"""
./configure  --prefix=/usr/local/src/automake
"""编译"""
make

make install

"""导入环境变量"""
vim /etc/profile
"""打开配置文件,添加依赖包路径"""
	export PATH=$PATH:/usr/local/automake/bin
"""更新激活配置文件"""
source /etc/profile
"""验证安装正确"""
aclocal --version

至此待顺利完成gcc的编译,就可对框架进行编译,我是在这样的情况下完成框架编译的。

5、相关软件卸载命令和cuda、pytorch网址

更新显卡驱动的一些卸载命令:

"""找到离线安装包.run的位置"""
./NVIDIA-Linux-x86_64-515.0 --uninstall

卸载CUDA的命令:

cd /usr/local/cuda-11.3/bin/
sudo ./cuda-uninstaller

附上一些下载软件的链接:
CUDAToolkit:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述

CuDnn:https://developer.nvidia.com/rdp/cudnn-download
在这里插入图片描述

pytorch与cuda版本对应关系,以及torch和torchvision版本对应关系:https://pytorch.org/get-started/previous-versions/
在这里插入图片描述

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

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

相关文章

LeetCode HOT 100 —— 155.最小栈

题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 …

JavaScript 删除对象中的某一项

delete let obj{a:1,b:2,c:3,d:4,e:5,f:6} delete obj.b console.log(obj)运行结果: Reflect.deleteProperty JavaScript 中的静态方法 Reflect.deleteProperty() 允许用于删除对象上的属性。它很像 deleteoperator,但它是一个函数。 Reflect.delet…

Python操作Azure Blob Storage

安装 Azure Storage SDK for Python 最简单的方式是在安装了 python 和 pip 的机器上直接执行下面的命令: pip install azure-storage 安装完成后通过 pip freeze 命令查看安装的版本: 由于 Azure Storage SDK for Python 是一个开源项目,…

Buildroot系列开发(七)block device

摘自:百问网 文章目录1.块设备2.1 什么是块设备?raw flash?2.2 block device 列表2.3 块设备分区2.4 传输数据到块设备2. 块设备文件系统2.1 支持的块设备文件系统2.2 linux / unix 其他日志文件系统2.3 F2FS2.4 SquashFS2.5 如何选择最佳文件…

计算机网络-转发表和路由选择协议

有志者,事竟成 文章目录一、描述1、转发表和路由选择协议二、总结一、描述 1、转发表和路由选择协议 前面我们说过,路由器从与它相连的一条通信链路得到分组,然后向与它相连的另一条通信链路转发该分组。但是路由器怎样决定它应当向哪条链路…

Docker[4]-Docker数据卷

数据卷 前面我们介绍了镜像和容器,通过镜像我们可以启动多个容器,但是我们发现当我们的容器停止获取删除后,我们在容器中的应用的一些数据也丢失了,这时为了解决容器的数据持久化,我们需要通过容器数据卷来解决这个问…

一文4000字教你如何使用可视化的Docker进行UI自动化测试

随着 docker 的发展,很多测试的同学也已经在测试工作上使用 dockr 作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在 docker 中使用浏览器进行自动化测试如果可以实现可视化,同时可以对浏览器进行相关的操作。 开篇 首先我们先了解…

【C++学习笔记】C++编程环境配置

g跟gcc之间是否有依赖关系 g跟gcc之间没有依赖关系,两者分别对应面向C和C语言的编译程序,关于gcc和g的区别,请参考知乎回答《gcc和g是什么关系? ——gcc 和 g 的区别》 1 Ubuntu环境配置 Ubuntu官方源提供gcc和g预编译版本 Ub…

用一张图说一说 ChatGPT 内部技术工作流程

前沿 这几天ChatGPT可谓是热火朝天,很多同事和朋友都来找到勇哥,说能不能说一说相关话题,但是之前几天勇哥都在默默的干一件大事情,今天终于成型、有结果了,所有就抽了点时间来和大家一起聊聊ChatGPT背后的技术&#…

.net开发安卓入门 - 布局与样式(像素单位px、dp、sp的区别)

.net开发安卓入门 - 布局与样式布局LinearLayoutRelativeLayoutTableLayoutRecyclerViewListViewGridViewGridLayoutTabbed Layouts主题 Material Theme主题应用程序主题活动像素pxdpdipsp常用UI框架推荐常用动画推荐布局 布局用于排列构成屏幕的 UI 界面的元素 (,…

没有公网IP,怎样远程查看视频监控?

视频监控通常被称作“第三只眼”。如今,除了最基础的安防需求外,视频监控在不同的应用场景延伸出了各种各样的功能需求,并且正与日俱增。 常见的家庭应用场景,如照看老人小孩、宠物等;常见的公司应用场景,如…

vue的script动态改css、scss变量方法

解决场景&#xff1a;script设颜色变量&#xff0c;<style>的background-color的值"#ddd"的跟着变 序 1、这篇博文适用vue2和vue3版本&#xff0c;博主实验时&#xff0c;vue3的版本是^3.2.45 2、 其实要解决的方案在vue3里有一个专栏“单文件组件的 <…

[附源码]Python计算机毕业设计Django志愿者服务平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

3分钟带你重温 SelectDB 产品发布会亮点!

12月8日的 SelectDB 产品发布会圆满举办&#xff0c;一时间吸引了无数业内关注&#xff0c;大家都对这款在正式发布前就拿下 ClickBench 全球第一的云数仓产品充满期待与好奇。万众瞩目下&#xff0c;SelectDB Cloud 终于正式与大家见面了~~ 以下是这场发布会的详细解读&#…

蜂鸟E203学习笔记(五)——执行

1.1 执行概述 1.1.1 指令译码 指令所包含的信息编码在有限长度的指令字中&#xff0c;信息如下&#xff1a; 指令所需要读取的操作数寄存器索引指令需要写回的寄存器索引指令的其他信息如指令类型、指令的操作信息等 顺便注意&#xff1a;并非所有的处理器流水线都会在译码…

MySQL进阶篇(二) - 索引

一、索引概述&#xff08;P66&#xff09; 1. 介绍 索引&#xff08;index&#xff09;是帮助 MySQL 高效获取数据的数据结构&#xff08;有序&#xff09;。 在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&…

浅析Python中的struct模块

最近在学习python网络编程这一块&#xff0c;在写简单的socket通信代码时&#xff0c;遇到了struct这个模块的使用&#xff0c;当时不太清楚这到底有和作用&#xff0c;后来查阅了相关资料大概了解了&#xff0c;在这里做一下简单的总结。 了解c语言的人&#xff0c;一定会知道…

同花顺Python量化交易接口有什么功能?

为了进一步满足私募机构“本地化交易接口”的诉求&#xff0c;“同花顺Python量化交易接口”就出现了&#xff0c;目前仅支持同花顺模拟资金账户&#xff0c;您可以在本地对模拟资金账户进行下单、撤单、资产查询、委托查询等操作&#xff01;那么同花顺Python量化交易接口可以…

如何实现随机生成坐标点,并且使每个坐标点之间的距离大于某个距离?(用于散点图的绘制,进行数据的处理)

背景&#xff1a; 最近需要开发一个新需求&#xff0c;需要绘制一个随机生成数字的散点图&#xff0c;要求点与点的距离要大于某个特定值。 解决思路&#xff1a; 通过循环获取每个坐标点&#xff0c;每获取一个新的坐标点&#xff0c;都要与之前生成的坐标点进行对比&#…

为你揭秘保健品平台利用“消费全返”,半年净赚过百万背后的原因

​大家好&#xff0c;我是每天分享电商模式咨询的林工&#xff0c;最近林工了解到某一家保健品企业&#xff0c;利用做会员招商活动一招“消费全返”的商业模式&#xff0c;在短短半年内裂变近数十万会员&#xff0c;净挣过百万营业额&#xff0c;这个模式值得各行各业的企业家…