Linux 服务器下非root用户安装CUDA完整流程(多次踩雷经验总结)

参考博客:

linux下安装cuda和cudnn(非root权限)_cuda下载安装 远程服务器 linux-CSDN博客

Linux下非root用户安装CUDA_linux下cuda-toolkit-archive-CSDN博客

非root用户安装cuda10.1,以及CUDA不同版本间切换_非root用户.run文件怎么安装-CSDN博客

前言(关于为什么会有这篇博客)

深度学习免不了需要CUDA加速,但是在诸多的CUDA安装教程中使用的都是sudo命令,服务器只有一个管理员,非管理员用户无法使用sudo命令,更新和安装CUDA通常会出现如下报错

不在 sudoers 文件中。此事将被报告。

一、清楚服务器的版本

1.1查看操作系统版

命令行输入

cat /proc/version

由此确定服务器linux操作系统的版本 可以看出本台服务器为Ubuntu20.04版本

后面在官网下载CUDA要用到

1.2查看服务器支持的CUDA的最高版本

nvidia-smi

本台服务器支持的CUDA的最高版本是12.0

后面在官网下载CUDA也要用到

二、CUDA的下载与安装

2.1 选择版本

转到CUDA官网 CUDA Toolkit Archive | NVIDIA Developer

我这里根据我的服务器选择的版本是12.0.0

点进去出现更详细的版本选择界面

根据自己服务器版本选(前面说过如何查看服务器版本了)

因为没有sudo权限,所以安装类型选择runfile(组里的师兄告诉的)其他的安装方式我也没有尝试

2.2 下载安装包

这时候会发现下面出现了安装指令

一步一步运行

在命令行输入

wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run

过一会发现文件下载到了当前用户的目录下

2.3 安装runfile文件

在安装之前要新建一个CUDA的文件夹 用来作为安装路径 否则默认安装路径没有权限也会以报错

如上图,我的路径是home/XXX/CUDA12.0.0(后面要考)

接下来就是安装

会发现直接使用官网给出的命令会报错 因为没有sudo权限

很简单 去掉sudo就好

命令行输入

sh cuda_12.0.0_525.60.13_linux.run

(如果下载的和我不是一个版本 要换成自己下载的文件的名称)

这时候就进去了安装界面

问你accept嘛?就输入accept

后面的流程照着我的改(千万记得修改为自己的路径)

1.取消driver(空格 ENTER可以取消)

2.下键↓ 进入Options(ENTER 进入)
3.进入Toolkit Options

4.修改Toolkit路径(修改为新建文件夹路径)

5.Done退出

6.同理修改Library路径(也是新建文件夹的路径)
7.Done 退出
8.Install安装

9.出现如下字符安装成功

10.修改bashrc

命令行输入vim ~/.bashrc

按 i 键进入插入模式

修改后三行(对应的地方改成自己的路径)

export CUDA_HOME=$CUDA_HOME:/home/XXX/CUDA12.0.0export PATH="/home/XXX/CUDA12.0.0/bin:$PATH"export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/XXX/CUDA12.0.0/lib64

编辑好文本后按Esc,退出插入状态

输入冒号,输入wq 回车

11.
source ~/.bashrc

三、CUDNN安装与下载

3.1官网下载cudnn

这里需要注册账号 ,没有什么会踩雷的地方,就跳过,直接进入下载步骤

cuDNN Archive | NVIDIA Developer

这个下载到自己的电脑 下载到本地就好

3.2本地解压(本地指自己的电脑区别于服务器)

解压两次 直到出现子文件夹

3.3上传Cudnn文件

在服务器新建一个文件夹 例如我的是/home/XXX/Cudnn

把解压后的所有文件上传到所有文件夹里

我用的是Xftp 可以直接传输 如果不能建议搜一下其他博客如何通过命令行的指令传输

3.4 复制文件:把Cudnn文件夹下的文件复制到CUDA下

首先跳转到Cudnn文件夹下

cd /home/XXX/Cudnn

复制(换成自己的路径)

cp /home/XXX/Cudnn/include/cudnn.h /home/XXX/CUDA12.0.0/include/
​
cp /home/XXX/Cudnn/lib/libcudnn* /home/XXX/CUDA12.0.0**/lib64/

修改权限

chmod a+r /home/XXX/CUDA12.0.0/include/cudnn*.h
​
chmod a+r home/XXX/CUDA12.0.0/lib64/libcudnn*

第二条指令可能会报错,

如果报错,修改为:

chmod a+r /home/XXX/CUDA12.0.0/targets/x86_64-linux/lib/libcudnn*

查看是否安装成功

查看版本:

nvcc -V

出现版本信息表示安装成功

查看安装路径:

which nvcc

至此结束


第一次写博客 语言的专业性和精炼有待提升 如果没有讲清楚的地方欢迎提问

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

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

相关文章

android kotlin基础复习—if when

1、新建kt并运行 新建文件kt 运行文件kt 2、kotlin语句 if when的使用 var x 5val y 9if (x in 1..8) {println("x 在区间内")} 说明&#xff1a; var&#xff1a;定义变量 val定义常量。 代码中会看到那个<&#xff0c;也就是说包括1&#xff0c;8。 3、输…

glsl着色器学习(二)

书接上文&#xff0c;第一篇文章已经将顶点着色器和片段着色器的内容编写好了&#xff0c;这篇文章就创建着色器并编译 创建顶点着色器对象 const vertexShader gl.createShader(gl.VERTEEX_SHADER); gl.shaderSource(vertexShader,vsGLSL); gl.compileShader(vertexShader …

J.U.C Review - 阻塞队列原理/源码分析

文章目录 阻塞队列的由来BlockingQueue的操作方法BlockingQueue的实现类ArrayBlockingQueueLinkedBlockingQueueDelayQueuePriorityBlockingQueueSynchronousQueue 阻塞队列原理深入分析1. 构造器和监视器初始化2. put操作的实现3. take操作的实现4. 注意事项小结 线程池中的阻…

qmt量化交易策略小白学习笔记第57期【qmt编程之期权数据--获取指定期权品种的详细信息--内置Python】

qmt编程之获取期权数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 获取指定期权品种的详细信息 该函数能帮助用户获取指定期权品种的详细信息&#xff0c;如期权代码、市场、涨跌停价、期…

c++返回一个pair类型

前言 Under the new standard we can list initialize the return value. 代码测试 #include<iostream> #include<string> #include<vector>std::pair<std::string, int> process(std::vector<std::string>& v) {if (!v.empty()){return …

窖藏之秘:白酒在窖藏过程中经历了哪些变化?

在中华五千年的文明史中&#xff0c;白酒一直扮演着举足轻重的角色。它不仅是文人墨客笔下的灵感源泉&#xff0c;更是亲朋好友间传递情感的桥梁。在众多白酒品牌中&#xff0c;豪迈白酒&#xff08;HOMANLISM&#xff09;以其不同的酿造工艺和窖藏技艺&#xff0c;成为了酒中翘…

【前端面试】设计循环双端队列javascript

题目 https://leetcode.cn/problems/design-circular-deque/description/ 存储循环队列的向量空间是循环的&#xff0c;用通俗的话来讲&#xff0c;就是我们在做next或者prev操作时&#xff0c;不会发生溢出 取模、或者直接判断是否为0/size返回一个值。 数组实现 用函数来…

Python文件自动分类

假如这样的步骤全部手动做下来耗时是6秒&#xff0c;在文件数量不多的情况下&#xff0c;比如10个文件&#xff0c;总共耗时一分钟其实是能够接受的。 但当文件数量特别多时&#xff0c;或者这个操作特别频繁每天都要做十几二十次时&#xff0c;手动操作就会变得耗时又繁琐…

【Agent】Agent Q: Advanced Reasoning and Learning for Autonomous AI Agents

1、问题背景 传统的训练Agent方法是在静态数据集上进行监督预训练&#xff0c;这种方式对于要求Agent能够自主的在动态环境中可进行复杂决策的能力存在不足。例如&#xff0c;要求Agent在web导航等动态设置中执行复杂决策。 现有的方式是用高质量数据进行微调来增强Agent在动…

SpringBoot3.x+MyBatisPlus+druid多数据源配置

1 引言 本章主要介绍SpringBoot3.x多数据源配置&#xff0c;以及在此基础上配置分页拦截&#xff0c;自动填充功等功能&#xff0c;源码链接在文章最后。下面列出几个重要文件进行介绍。 2 项目结构 整体项目结构如下&#xff0c;主要介绍配置文件和配置类。 3 主要代码 …

Android Telephony总结

1、Telephony 业务介绍 Android telephony涉及较多模块 1.1、STK业务介绍 1.1.1、STK域选 1.1.2、是否支持STK Telephon STK-CSDN博客 1.1.3、STK应用的安装卸载 1.2、SS补充业务 1.3、通话业务 1.3.1、紧急号码 ECC 号码总结_ecc号码-CSDN博客 1.4、SMS 1.4.1 短信发送方式…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门task3:实践方法论

在应用机器学习算法时&#xff0c;实践方法论能够帮助我们更好地训练模型。 1.模型偏差 模型偏差可能会影响模型训练。举个例子&#xff0c;假设模型过于简单&#xff0c;即使找到的最好的函数也不能满足需求。这种情况就是想要在大海里面捞针&#xff08;一个损失低的函数&am…

数学建模强化宝典(9)遗传算法

前言 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;是一种模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型&#xff0c;它通过模拟自然进化过程来搜索最优解。遗传算法最早由美国的John Holland于20世纪70年代提出&#xff0c;并逐渐成为解决复…

Spring6学习笔记2:容器IoC

文章目录 3 容器&#xff1a;IoC3.1 IoC容器3.1.2 依赖注入3.1.3 IoC容器在Spring的实现 3.2 基于XML管理Bean3.2.1 搭建子模块spring6-ioc-xml3.2.2 实验一&#xff1a;获取bean①方式一&#xff1a;根据id获取②方式二&#xff1a;根据类型获取③方式三&#xff1a;根据id和类…

探索英文字体设计的奥秘,解读风格与实用技巧

英文字体设计是一门融合了艺术与技术的学科。字体不仅仅是文本的视觉表现&#xff0c;更是传递情感、信息和品牌个性的媒介。从印刷时代到数字时代&#xff0c;英文字体的设计和应用发生了巨大的变化&#xff0c;而现代字体设计师则肩负着为视觉传达赋予新生命的使命。本文将深…

记:子线程实现QTcpSocket读写的问题

最近在改进考勤系统客户端多线程实现时遇到了线程异步和野指针问题 client&#xff1a;多线程实现ui界面显示&#xff08;主线程&#xff09;、人脸检测&#xff08;检测线程&#xff09;、socket网络通信&#xff08;通信线程)三个任务。 主线程&#xff1a; TimerEvent实时…

CTF---密码学知识点总结

✨Ascall编码&#xff1a;在 ctf 比赛中&#xff0c;flag 的标志一般是以 Ascall 码的形式存在&#xff0c;其对应的码值为102&#xff0c;108&#xff0c;97&#xff0c;103&#xff08;其中{的码值是123&#xff09;&#xff01; ✨Unicode编码&#xff1a;又名万国码&#…

kubeadm方式升级k8s集群

一、注意事项 升级前最好备份所有组件及数据&#xff0c;例如etcd 不要跨两个大版本进行升级&#xff0c;可能会存在版本bug&#xff0c;如&#xff1a; 1.19.4–>1.20.4 可以 1.19.4–>1.21.4 不可以 跨多个版本的可以逐个版本进行升级。 二、查看当前版本 [rootk8s…

如何远程连接其他电脑?两种常用方法!

在过去&#xff0c;远程控制仅限于那些擅长计算机专业技术的少数人。然而&#xff0c;随着科学技术的不断发展&#xff0c;越来越多的人可以通过各种远程控制软件实现对其他电脑的远程操作。如今&#xff0c;对于普通电脑用户来说&#xff0c;使用自己的电脑远程控制另一台电脑…

22AP10 SS524 平替 海思HI3521DV200 可提供开发资料

22AP10 是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;DVR 产品应用开发的新一代专 业 SoC 芯片。22AP10 集成了 ARM Cortex-A7 四核处理器和性能强大的图像分析工具 推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c;22AP10 还集成了多路 MIPI …