RHEL/centos8.0离线安装n卡驱动,cuda10.1,cudnn7.5,anaconda3,pycharm以及mmdeection和simpledet的搭建

2023-11-09

我最近在两台RHEL8.0的服务器装了这些玩意,特此记录一下
1.离线安装nvidia driver,cuda10.1,cudnn7.5
关键因素:显卡型号(Quadro P4000);系统(RHEL 8.0) 用’cat /etc/redhat-releas’查看;gcc(8.2.1) gcc -v
##########分隔线############
(1)cuda选择/下载:
百度搜索(最方便的方式)想要的cuda版本(9.0/9.2/10.0/10.1);
我选的是cuda10.1,因为cuda9.0/cuda9.2/cuda10.0没有RHEL8的包,但是RHEL7的包也有可能适用(后来验证了,确实可以用但会出现某些问题,所以个人不推荐);
参照这目录并找到最低版本driver:添加链接描述l

(2)driver下载/安装:
优先选择https://www.nvidia.cn/Download/Find.aspx?lang=cn
https://www.nvidia.com/Download/index.aspx?lang=en-us
第二个网址一般会下载最新的驱动,它对于cuda和cudnn版本都是向下兼容的,但尽量不要下载最新的

	禁用nouveau:
		sudo vim /usr/lib/modprobe.d/dist-blacklist.conf
		blacklist nouveau
		options nouveau modeset=0
		
	镜像更替:
		sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
		sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
		
	重启机器!并检查'lsmod | grep nouveau', 没打印出内容就ok
	
	执行脚本:
		关掉X Server:(不然在安装时会报错说没exit X)
			sudo init 3
			sudo rm /tmp/.X*
			sudo systemctl stop gdm.service
		chmod u+x NVIDIA-Linux-x86_64-418.88.run
		sudo ./NVIDIA-Linux-x86_64-418.88.run --kernel-source-path=/usr/src/kernels/4.18.0-80.el8.x86_64(ls看一下选对自己的内核版本号)

安装时我遇到了错误:
打开vim /var/log/nvidia-installer.log,会发现最后几行有错误信息,最关键的是Makefile:958: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.
解决方法:(这步最好联网)
Ubuntu:
apt install libelf-dev
apt install libssl-dev
CentOS/RHEL:
yum install elfutils-libelf-devel

	安装选项(原则上没见过选项最好都选择安装):
		The distribution-provided pre-install script failed! Are you sure you want to continue? 
			选择 continue
		Nvidia's 32-bit libraries? 
			这个一定选择 YES,很多软件需要32位库支持
		Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 
			选择 YES		
	安装验证:
		nvidia-smi

(3)cuda安装:
由于nvidia官方只有cuda10.1支持RHEL8,首选是cuda_cluster_pkgs_10.1.243_418.87.00_rhel8.tar.gz这个包
这个没有国内镜像,所以建议用‘科学上网’的方式,不然下得很慢(其实也很难下下来),最后用的网址是
http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
找到这个包的路径,然后

sudo sh cuda_10.1.243_418.87.00_linux.run

这个版本的安装流程和以前旧版本的不一样,我提及几处重要的选项:

Do you accept the above EULA? (accept/decline/quit):accept

		x CUDA Installer                                                               
		x - [] Driver (敲空格去掉X)                                                                
		x      [] 418.87.00                                                           
		x + [X] CUDA Toolkit 10.1                                                      
		x   [X] CUDA Samples 10.1                                                      
		x   [X] CUDA Demo Suite 10.1                                                   
		x   [X] CUDA Documentation 10.1                                                
		x   Options (Enter键,会出现下面这个表)                                                                   
		x   Install  
	

		x CUDA Driver                                                                  
		x   [X] Do not install any of the OpenGL-related driver files                  
		x   [ ] Do not install the nvidia-drm kernel module                            
		x   [X] Update the system X config file to use the NVIDIA X driver             
		x   Change directory containing the kernel source files                        
		x   Done      

选完这个后’Done’回去’Install’
最后配置环境变量,‘sudo vim /etc/profile’(有界面的可以sudo gedit /etc/profile)
在最后一行添加

		export PATH=/usr/local/cuda-10.1/bin:$PATH
		export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64$LD_LIBRARY_PATH

保存并退出

(4)cudnn下载/安装:
cudnn一定要对应的cuda;cudnn不需要选择平台;尽量选择最新的版本;

		tar xvf cudnn-10.1-linux-x64-v7.5.0.56.tgz
		sudo cp cuda/include/* /usr/local/cuda/include(其实可以不要这行,个人习惯,保险起见)
		sudo cp cuda/include/* /usr/local/cuda-10.1/include
		sudo cp cuda/lib64/*   /usr/local/cuda/lib64(其实可以不要这行,个人习惯,保险起见)
		sudo cp cuda/lib64/*   /usr/local/cuda-10.1/lib64
		sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*(其实可以不要这行,个人习惯,保险起见)
		sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h /usr/local/cuda-10.1/lib64/libcudnn*	

(5)验证:
cuda验证:

   nvcc -V;
   cat /usr/local/cuda-10.1/version.txt;
   cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery
   sudo make
   ./deviceQuery

cudnn验证:

cat /usr/local/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2

2.anaconda的安装

我用的最新版的Anaconda:Anaconda3-2019.07-Linux-x86_64.sh

sh Anaconda3-2019.07-Linux-x86_64.sh
验证:	
	source activate
	anaconda-navigator

3.pycharm的安装
直接解压就完事了,下面是介绍如何设置桌面快捷图标

cd /usr/share/applications
vim /usr/share/applications/pycharm.desktop

进入pycharm.desktop之后编辑文件如下并注意第6行是启动pycharm的命令,需要将pycharm.sh的文件路径换成安装的路径
(因为安装时路径是自定义的)。第 7 行是图标图片文件的路径,需要将pycharm.png的文件路径换成安装的路径(因为安装时路径是自定义的)。

		[Desktop Entry]
		Type=Application
		Name=Pycharm
		GenericName=Pycharm
		Comment=Python_IDE
		Exec=sh /root/pycharm2019/pycharm-2019.1/bin/pycharm.sh
		Icon=/root/pycharm2019/pycharm-2019.1/bin/pycharm.png
		Terminal=yes
		Categories=Application;Network;

验证:按’Win’键(alt左边那个),找到’pycharm’并点击

4.mmdetection的搭建
就目前而,个人认为mmdetection是开源的目标检测平台的最佳选择,它拥有最多的模型以及最新的更新速度:
理论上目前最高版本的pytorch(1.2)支持最高版本的cuda是10.0.130并不支持10.1
在这里插入图片描述

但是我自己测试了官方的test程序是可以跑的,不过过程中遇到了以下几个问题:
1.libcudart.so.9.0: cannot open shared object file: No such file or directory
原因:torchversion>=0.2.5
解决办法:https://blog.csdn.net/w55100/article/details/91048193

2.libcudnn.so.7 is not a symbolic link
解决办法:https://blog.csdn.net/weixin_32820767/article/details/81382877

3.ImportError: cannot import name ‘deform_conv_cuda’ from ‘mmdet.ops.dcn’
解决办法:在mmdetection的根目录下重新安装关键包,用python3 setup.py install

我的测试程序:(将测试程序和test.jpg放在mmdetection的根目录下)

from mmdet.apis import init_detector, inference_detector, show_result
import mmcv
config_file = 'configs/mask_rcnn_r101_fpn_1x.py'
checkpoint_file = 'checkpoints/mask_rcnn_r101_fpn_1x_20181129-34ad1961.pth'
model = init_detector(config_file, checkpoint_file, device='cuda:0')
img = 'test.jpg'  # or img = mmcv.imread(img), which will only load it once
result = inference_detector(model, img)
show_result(img, result, model.CLASSES)
show_result(img, result, model.CLASSES, out_file='result.jpg')

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RHEL/centos8.0离线安装n卡驱动,cuda10.1,cudnn7.5,anaconda3,pycharm以及mmdeection和simpledet的搭建 的相关文章

随机推荐

  • 仿一个wp7中PhotoChooserTask指定宽高后的图片裁剪窗口

    先看看PhotoChooserTask的图片裁剪窗口有哪些特点 1 窗口主体 整个图片最大可能存在的区域 宽480高720 无SystemTray 高32 有Appbar 高72 不支持横竖屏切换 只有竖屏模式 2 取景窗边框宽度1像素 边
  • vscode使用Remote-SSH插件无法连接远程LINUX服务器【解决】

    报错 Could not fetch remote environment Unable to write to Folder Settings because no resource is provided Failed to conne
  • Vue 3 技术揭秘

    作者介绍 muwoo 前端技术专家 曾就职于蚂蚁集团 之前对 Vue 2 x 源码有过深层次的研究和探索 并在 Github 上开源了相关的技术文章 Vue 2 x 技术揭秘 目前已有超过 2k star 自 Vue 3 诞生以来 就一直关
  • Flutter json_serializable

    1 添加项目依赖 dev dependencies flutter test sdk flutter build runner 1 1 3 json serializable 3 2 0 2 创建实体类 可以使用json serializa
  • libxml2 c库使用

    libxml2库 1 读取一个文件到内存 xmlParseFile和xmlReadFile xmlReadFile is a bit more powerful as it is able to take an URL instead of
  • element-plus中的ElMessage消息提示 执行了但是没有弹出提示

    报错原因及解决 引入了element plus 并没有引入css文件 所以导致了样式的缺失 只需要在main js文件中添加如下语句即可 import element plus dist index css 如果还是没有效果记得重启一下项目
  • 黑客学习笔记(自学)

    一 首先 什么是黑客 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手 现阶段黑客所需要掌握的远远不止这些 二 为什么要学习黑客技术 其实 网络信息空间安全已经成为海陆空之外的第四大战场 除了国与国之间的博弈 国内企业与企业间也有显著的明争暗
  • 如何快速准备大厂秋招面试中的算法

    如何快速准备大厂秋招面试中的算法 数据结构 1 栈 1 1 栈的概述 1 2 栈的常规操作 1 3 用js封装栈 1 4 栈的应用 2 队列 2 1 队列的概述 2 2 队列的常规操作 2 3 用js封装队列 2 4 队列的应用 3 链表
  • FreeRTOS学习笔记6(任务通知)

    1 任务通知函数及其知识点的介绍 下面是任务通知得一些特点 1 我们使用队列 信号量 事件组等等方法时 并不知道对方是谁 使用任务通知时 可以明确指定 通 知哪个任务 2 使用任务通知时 任务结构体TCB中就包含了内部对象 可以直接接收别人
  • MacbookPro安装前端开发环境的爬坑之旅

    文章目录 前言 一 MacbookPro的系统认知 二 强大的触控板 16种姿势带你飞 1 熟悉触控板 2 熟悉怎样下载APP 3 开始前端环境的搭建 总结 前言 2021年1月26日 一个前端开发小菜鸟拿到人生第一台MacbookPro的
  • 4.2 类

    类 类声明 类体 变量 成员变量 实例变量和类变量 局部变量 方法里面声明的变量 4 2 1类声明 类声明 class 类名 public class People 公共类 public class People String name i
  • Java .io_java IO

    java IO 主要内容 java io File类的使用 IO原理及流的分类 文件流 FileInputStream FileOutputStream FileReader FileWriter 缓冲流 BufferedInputStre
  • Linux十大常用命令

    1 gt 查看文件信息 ls ls是英文单词list的简写 其功能为列出目录的内容 是用户最常用的命令之一 它类似于DOS下的dir命令 Linux文件或者目录名称最长可以有265个字符 代表当前目录 代表上一级目录 以 开头的文件为隐藏文
  • 机器视觉之医学诊断应用

    https www toutiao com a6668252530897584644 随着药品和医疗器械安全性问题重要性的不断提升 越来越多的生产厂商将机器视觉技术引入实际生产中来 以达到提高生产效率 加强产品质量保障的目的 同样 在医疗系
  • Windows环境安装redis-dump

    安装msys2 x86 64 20190524 exe http repo msys2 org distrib x86 64 msys2 x86 64 20190524 exe rubyinstaller devkit 2 7 1 1 x6
  • CSS样式修改的一些技巧

    感觉自己对页面太差了 很多小问题不了解 是时候加强一下这方面 把最近一个小需求 总结一下 自己也欠了好多学习博客补一下 另外这个博客是来自于自己平时学习的总结和看法 基本是原创或者自己看到一些结合了自己的理解 已经有了一些文章 借用了 我的
  • 重启c语言—两个有序链表序列的交集

    7 1 两个有序链表序列的交集 20分 已知两个非降序链表序列S1与S2 设计函数构造出S1与S2的交集新链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔
  • 华为OD机试 - 选修课(Java & JS & Python)

    题目描述 给定一个元素类型为小写字符串的数组 请计算两个没有相同字符的元素长度乘积的最大值 如果没有符合条件的两个元素 返回0 输入描述 第一行为第一门选修课学生的成绩 第二行为第二门选修课学生的成绩 每行数据中学生之间以英文分号分隔 每个
  • 汇编笔记

    更新于20190929 1 Intel和AT T汇编 参数是反的 AT T寄存器前加 常量前加 Intel mov rax rcx rcx gt rax mov cl 2 对应AT T movq rcx rax rcx gt rax mov
  • RHEL/centos8.0离线安装n卡驱动,cuda10.1,cudnn7.5,anaconda3,pycharm以及mmdeection和simpledet的搭建

    我最近在两台RHEL8 0的服务器装了这些玩意 特此记录一下 1 离线安装nvidia driver cuda10 1 cudnn7 5 关键因素 显卡型号 Quadro P4000 系统 RHEL 8 0 用 cat etc redhat