一文详解GCC7、CUDA 11.2、CUDNN部署

news2024/12/24 10:21:17

在部署之前,需要了解下python-tensorflow-cuDNN-CUDA版本对应关系,以便能够完全兼容

下文以此版本为例部署

gcc-7.3.1

gpu driver-460.106.00

cuda-11.2

cudnn-8.1.1

一.gcc部署

1.安装
[root@gpu ~]# yum -y install centos-release-scl
[root@gpu ~]# yum install devtoolset-7-gcc*

安装完成后会发现/opt/rh目录下会多出以下目录devtoolset-7,说明安装成功

2.切换为默认版本
[root@gpu ~]# mv /usr/bin/gcc /usr/bin/gcc-4.8
[root@gpu ~]# mv /usr/bin/g++ /usr/bin/g++-4.8
[root@gpu ~]# ln -s /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc
[root@gpu ~]# ln -s /opt/rh/devtoolset-7/root/usr/bin/g++ /usr/bin/g++
[root@gpu ~]# mv /usr/bin/cc /usr/bin/cc-4.8
[root@gpu ~]# mv /usr/bin/c++ /usr/bin/c++-4.8
[root@gpu ~]# ln -s /usr/bin/gcc /usr/bin/cc
[root@gpu ~]# ln -s /usr/bin/g++ /usr/bin/c++
[root@gpu ~]# gcc --version

至此,gcc升级完成。

如果想临时生效,可以执行下面命令:

# 查看已有的版本
scl --list 
# 切换gcc环境
scl enable  devtoolset-7 bash
# 退出环境
exit 

二.GPU driver部署

    • 查看显卡型号
lspci | grep -i vga

可以查看显卡型号。但是是一串数字代码,可通过PCI devices网站进行查询。

本案例的型号是Tesla T4

    • 确保内核版本一致

rpm -qa | grep kernel

1.需要安装kernel-devel安装包,否则后面安装报错

2.需要确保所有包版本一致,否则后面安装报错

    • 安装dkms

DKMS全称是DynamicKernel ModuleSupport,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块。

yum install -y dkms

    • 禁用系统默认安装的 nouveau 驱动
# 修改配置
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
 
# 备份原来的镜像文件
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
 
# 重建新镜像文件
sudo dracut --force
 
# 重启
reboot
 
# 查看nouveau是否启动,如果结果为空即为禁用成功
lsmod | grep nouveau

    • 下载驱动包

地址:https://www.nvidia.com/Download/Find.aspx

查看支持显卡的驱动最新版本及下载,下载之后是.run后缀。然后上传到服务器任意位置即可

    • 安装

安装之前需要卸载旧的驱动(如无请忽略)

/usr/bin/nvidia-uninstall

安装新版本驱动

chmod +x NVIDIA-Linux-x86_64-418.126.02.run
sh NVIDIA-Linux-x86_64-418.126.02.run  --disable-nouveau

执行nvidia-smi查看是否安装成功

三.CUDA部署

    • 卸载之前的安装包
systemctl stop lightdm
cd /usr/local/cuda-8.0/bin
./uninstall_cuda_8.0.pl
rm -rf /usr/local/cuda-8.0

    • 下载安装包并安装

地址:https://developer.nvidia.com/cuda-toolkit-archive

wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run
sudo sh cuda_11.2.2_460.32.03_linux.run

键入accept确认。👇

我们已经有驱动了,这里取消安装驱动,上下键和回车键选择。👇

稍作等待,出现以下提示信息就安装好了,可以看到CUDA安装到了/usr/local/cuda-11.2/

    • 配置环境变量
vim /etc/profile
  export PATH=//usr/local/cuda-11.2/bin:$PATH
  export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64$LD_LIBRARY_PATH
source /etc/profile

    • 检查是否安装成功

四.CUDNN部署

    • 下载安装包

地址:https://developer.nvidia.com/rdp/cudnn-archive

    • 安装
    tar -xvf cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz
    cd cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive
    sudo cp lib/* /usr/local/cuda-11.2/lib64/
    sudo cp include/* /usr/local/cuda-11.2/include/
    sudo chmod a+r /usr/local/cuda-11.2/lib64/*
    sudo chmod a+r /usr/local/cuda-11.2/include/*

    • 查看是否安装成功
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

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

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

相关文章

《收获,不止Oracle》索引细化

1.索引知识图框 2.索引探秘 2.1 BTREE索引 索引是建在表的具体列上的,其存在的目的是让表的查询变得更快,效率更高。表记录丢失关乎生死,而索引丢失只需重建即可。 索引却是数据库学习中最实用的技术之一。谁能深刻地理解和掌握索引的知识&…

Spring gateway websocket自定义负载均衡

业务需求 公司IM服务主要基于netty实现websocket,为保证在线用户channel通道畅通故一直使用单机运行。现由于公司业务增加需要增加IM集群,由于channel通道不能缓存,故急需一套可以完整兼容之前功能的方案。 技术选型 1、采用spring websocke…

Bonree ONE荣获信通院“2022IT新治理年度明星产品”

今日,由信通院主办的“GOLFIT新治理领导力论坛”正式召开,论坛上公布了2022IT新治理年度评选活动的结果,博睿数据一体化智能可观测平台Bonree ONE凭借卓越的产品力以及优秀的用户体验,从一众产品中脱颖而出,获得“2022…

spring 事务@Transantional 失效及解决方案和总结

1、线程中方法,事务会失效 2、线程中方法,事务会失效。即使在线程方法上增加Transactional注解 3、事务正常回滚,A方法调用B的普通方法 4、事务正常回滚。A方法调用B的private普通方法 6、会抛出NullPointerException异常。 Methods ann…

rock3a: 基于自建数据集+yolov5s模型的rknn模型训练部署全流程

上一篇文章其实已经详述了模型训练到部署的整个流程,但是数据集到模型都是用的官方的coco数据集,这里为了记录开发板的模型训练到部署的整个流程,重新开了一篇文章进行记录。 首先准备数据集和rockchip官方推荐的yolov5源代码 这里需要注意的…

基于Node.js Vue企业产品展示网站

摘 要随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&am…

CAN201-Computer Network(2)

文章目录4. Network Layer4.1 Router4.1.1 Input port functions4.1.2 Destination-based forwarding4.1.3 Switching fabrics4.1.4 Input port queueing4.1.5 Output ports4.2 Internet Protocol4.2.1 IP fragmentation, reassembly4.3 IPv4 addressing4.3.1 Subnets4.3.2 Net…

高等数学(第七版)同济大学 习题11-4 个人解答

高等数学(第七版)同济大学 习题11-4 函数作图软件:Mathematica 1.设有一分布着质量的曲面Σ,在点(x,y,z)处它的面密度为μ(x,y,z),用对面积的曲面积分表示这曲面对于x轴的转动惯量.\begin{aligned}&1. \ 设有一分…

IB生物课程介绍与Topic 1: Cell Biology考点分享

准备让孩子就读国际学校或者孩子正在国际学校就读的家长肯定听说过“IB”或者“IB班”,那IB究竟是什么呢?IB与IB课程 IB是International Baccalaureate(国际文凭)的简称,其课程体系国际文凭大学预科课程(In…

Educational Codeforces Round 141 (Rated for Div. 2)A——C

ps:先自我检讨...自从世界杯开始后,就一直摆烂到现在。直到打了今年的第一场cf,看见打的这么菜,真是想remake/。后面我会陆陆续续的补完前段时间没有打的比赛... Dashboard - Educational Codeforces Round 141 (Rated for Div. …

ReentrantLock

目录 ReentrantLock ReentrantLock语法 ReentrantLock可重入 ReentrantLock可打断 ReentrantLock锁超时 ReentrantLock解决哲学家就餐问题 ReentrantLock公平锁 ReentrantLock条件变量 ReentrantLock ReentrantLock 相比于synchronized的特点 : 可中断:比如A线程拥有…

基于移动最小二乘法的曲线曲面拟合论文阅读笔记

基于移动最小二乘法的曲线曲面拟合论文阅读笔记 论文地址:http://www.cnki.com.cn/Article/CJFDTotal-GCTX200401016.htm 一、Problem Statement 传统的曲线(曲面)拟合方法一般使用最小二乘法, 通过使误差的平方和最小, 得到一个线性方程组&#xff0…

通过alist挂在阿里网盘的方法

1、在github官网https://github.com/alist-org/alist/releases/download/v3.8.0/alist-windows-amd64.zip下载alist软件客户端,双击运行,可以看到默认的密码和服务器地址,打开网页http://localhost:5244/manage/accounts,填写密码…

【Linux】Linux工具

文章目录软件包管理器yumVIM编辑器Linux编译器-gcc/g使用gcc如何完成预处理(进行宏替换)编译(生成汇编)汇编(生成机器课识别代码)链接在这里涉及到一个重要的概念: 函数库函数库一般分为静态库和动态库两种gcc选项gcc选项记忆Linux项目自动化构建工具-make/Makefile背景理解实例…

解决vue中报错 Duplicate keys detected:‘1‘. This may cause an update error.

报错截图: 报错原因: 通过上图的报错信息我们不难看出,报错的主要原因出现在 key 值上,报错的意思大概是检测到重复的 key 值,通俗来讲就是你的 key 值不是唯一的。 解决方案: 问题的根源找到了&#xff…

【初阶数据结构】——链表常见面试题剖析

文章目录前言题目1:移除链表元素题目分析思路1:暴力求解思路2:取非val值尾插至新链表思路讲解思考代码实现不带哨兵位带哨兵位题目2:合并两个有序链表题目分析思路讲解代码实现不带哨兵位带哨兵位题目3:反转链表题目分…

用ode45解微分方程遇到的实际问题

最近在用ode45解微分方程数值解,试图复现论文中的图。一般来说说微分方程(组)只要按照响应的条件去撰写好对应的回调函数即可,基本没什么难度,但对于本文遇到的的这个问题,可能还需要一些技巧去实现解法&am…

动态路由和导航守卫

一、动态路由1、什么是动态路由?将URL地址中可变的内容设置成参数,根据不同的参数渲染不同的组件。(组件可以复用)2、动态路由如何进行参数的传递:(1)如何设置URL地址中的参数:’/ur…

【手写 Vue2.x 源码】第十二篇 - 生成 ast 语法树-流程说明

一,前言 上篇,主要介绍了 vue 数据渲染核心流程,涉及以下几个点: 初次渲染时 template 模板被编译为 ast 语法树;通过 ast 语法树生成 render 函数;通过 render 函数返回 vnode 虚拟节点;使用…

基于K8s的DevOps平台实践(三)

文章目录前言1. Jenkins与k8s集成🍑 插件安装及配置🍑 演示动态slave pod🍑 Pod-Template中容器镜像的制作🍑 实践通过Jenkinsfile实现demo项目自动发布到kubenetes环境2. Jenkins集成Sonarqube🍑 sonarqube架构简介&a…