Linux服务器无Root权限安装Cuda方法及问题解决

news/2025/1/8 14:54:02/文章来源:https://www.cnblogs.com/kuai/p/18653848

CUDA 简介

什么是 CUDA ?

CUDA(Compute Unified Device Architecture)是由 NVIDIA 提供的一种并行计算平台和编程模型,用于加速计算密集型任务。CUDA 允许开发者使用 GPU 的计算能力,通过并行处理来快速执行复杂的计算任务。

CUDA 包括以下主要组成部分:

  • CUDA Toolkit:为开发人员提供工具链(如编译器 nvcc)、库(如 cuBLAS、cuDNN)和运行时环境,用于编写和调试 CUDA 程序。
  • CUDA Runtime:运行时库,用于管理和执行 CUDA 程序。
  • GPU 驱动程序(Driver):NVIDIA 提供的驱动程序,为 CUDA 程序与硬件之间的交互提供支持。

为什么可以或需要安装多个 CUDA ?

  • 驱动程序与 CUDA 的解耦
    GPU 驱动程序支持多个 CUDA 版本(包括较旧版本),确保程序的向后兼容性。
    你可以在系统上安装多个 CUDA Toolkit 版本,用于开发、编译不同需求的程序。
  • 不同的开发需求
    开发者可能使用不同的 CUDA 版本来适配不同的库或框架(如 TensorFlow、PyTorch 等)。
    某些框架(如 PyTorch)在特定版本中绑定了特定的 CUDA,导致需要安装多个版本的 CUDA Toolkit。

由于使用特定的框架或库对运行环境提出了具体要求,有时我们需要自行调整 CUDA 的版本,这是可以实现的。

本文将以普通用户 Ubuntu 24.04 gcc-13 cuda121 环境为例,介绍安装 cuda113 的详细过程和常见问题的解决方案。

CUDA 安装方法

1.下载 CUDA

进入 官方网站 下载环境对应的CUDA。本文以 CUDA 11.3 为例。

image

Architechture 查看方法:

uname -m

查看Ubuntu版本:

lsb_release -a

ps:Ubuntu 版本不对应时,个人实践未发现报错。例如 Ubuntu 24.04 可安装 20.04 版本。

如果有图形界面可以直接访问下载,或通过 wget 命令:

cd ~
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

2.运行安装文件
下载完成后可看到路径中出现 .run 安装文件。

ls

image

确保你有执行权限:

chmod +x cuda_11.3.0_465.19.01_linux.run

然后运行安装程序。注意这里toolkitpathsamplespath 可以自定义,特别是注意路径中涉及的 cuda 版本。

./cuda_11.3.0_465.19.01_linux.run --override-driver-check --silent --toolkitpath=/home/$(whoami)/cuda-11.3 --samplespath=/home/$(whoami)/cuda-samples --override

3.进入安装界面

(运行需要一段时间,如果没有报错耐心等待)
移动到 continueenter 继续。
image
输入 acceptenter 继续。
image
4.选择安装内容
由于我们没有 root 权限,因此我们无需也不能安装 Driver。移动到 Driver,按Space取消选中。然后选择 Install 回车继续。
image

5.等待安装完成
6.安装完成
显示 Summary。
image

7.写入环境变量
安装完成后,可以看到出现了指定的安装目录:

ls

image

然后将 bin lib目录写入到全局环境变量中。注意检查自己的路径是否正确。

echo 'export PATH=/home/$(whoami)/cuda-11.3/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/home/$(whoami)/cuda-11.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

8.测试

nvcc --version

可以看到,更换成功。

image

常见问题及解决方案

1. 安装协议太长无法翻页,导致无法继续
解决方案:运行安装文件时添加 --silent 参数。
主要作用:

  • 无交互安装: 安装过程中不会要求你输入任何信息,比如选择安装组件、同意协议等。所有操作都默认进行。
  • 适合脚本化安装: 适合在自动化脚本或批量安装中使用,避免人工干预。
  • 减少输出: 使安装过程更简洁,输出的日志信息通常会被最小化。

2.Failed to verify gcc version. See log at /tmp/cuda-installer.log for details.
image
解决方案:运行安装文件时添加 --override 参数。
作用:忽略 gcc 版本检查。

进入日志文件 /tmp/cuda-installer.log 可以看到问题为 gcc 版本不支持,可以通过添加参数忽略。

[INFO]: Overriding driver check
[INFO]: Setting toolkitpath=/home/kzy/cuda-11.3
[INFO]: Setting samplespath=/home/kzy/cuda-samples
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Checking compiler version...
[INFO]: gcc location: /usr/bin/gcc[INFO]: gcc version: gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) [ERROR]: unsupported compiler version: 13.3.0. Use --override to override this check.

3.Installation failed. See log at /tmp/cuda-installer.log for details.
解决方案:运行安装文件时通过添加 --toolkitpath ${yourpath} --samplespath ${yourpath}修改为自定义安装目录。注意,由于上文我们没有安装 Driver,因此这里只指定了 toolkitpath 和 samplespath。

进入日志文件可以看到,我们没有 root 权限无法对默认 /usr/local 文件写入,因此需要修改安装目录。

 [INFO]: Overriding compiler check
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Initializing menu
[WARNING]: Unable to write to directory: /usr/share/applications/
[INFO]: Setup complete
[INFO]: Components to install: 
[INFO]: CUDA Toolkit 11.3
[WARNING]: Unable to write to directory: /usr/local
[ERROR]: Permission denied. Unable to write to /usr/local/cuda-11.3/
[INFO]: Cleaning up window
[INFO]: Complete
[ERROR]: Install of CUDA Toolkit 11.3 failed, quitting

4.Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.
Override this check by passing --override-driver-check

解决方案:运行安装文件时添加 --override-driver-check参数。

顾名思义,绕过驱动检查。至此,安装完成。

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

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

相关文章

开启家具组装新方式:产品说明书智能指导

在快节奏的现代生活中,人们越来越追求便捷与高效。无论是新房装修还是家具换新,家具组装已成为许多家庭不可避免的一项任务。然而,面对复杂多变的家具图纸和冗长的产品说明书,许多人常常感到无从下手,甚至因操作不当而损坏零件。为了解决这一难题,一种全新的家具组装方式…

2024-2025-1 20241408陈烨南《计算机基础与程序设计》课程总结

每周作业链接汇总 第0周作业 自我介绍 https://www.cnblogs.com/chenyenai/p/18432520第1周作业 计算机基础与程序设计中的问题提问 https://www.cnblogs.com/chenyenai/p/18439433第2周作业 阅读《计算机科学概论》第一章和《C语言程序设计》第一章,并进行总结 https://www.c…

# 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第15周学习总结

学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第15周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…

SpringBoot进阶教程(八十四)spring-retry

在日常的一些场景中, 很多需要进行重试的操作.而spring-retry是spring提供的一个基于spring的重试框架,某些场景需要对一些异常情况下的方法进行重试就会用到spring-retry。spring-retry可以帮助我们以标准方式处理任何特定操作的重试。在spring-retry中,所有配置都是基于简单…

制造业知识中台:推动智能制造转型升级的智慧大脑

在当今全球制造业的激烈竞争中,智能制造已成为推动产业升级、提升竞争力的关键路径。制造业知识中台,作为连接数据、知识与业务的智慧中枢,正逐步展现出其在推动智能制造转型升级中的巨大潜力。它不仅能够帮助企业实现知识的有效整合与高效利用,还能通过智能化分析与应用,…

电子配件行业的未来之路:产品说明书数字化转型的力量

在科技飞速发展的今天,电子配件行业作为科技创新的前沿阵地,正经历着前所未有的变革。从智能手机、平板电脑到智能穿戴设备,各种新型电子配件层出不穷,极大地丰富了人们的生活。然而,随着产品种类的增多和功能的复杂化,如何确保消费者能够快速、准确地理解和使用这些产品…

基于四象限比例积分控制器的直流电机控制系统simulink建模与仿真

1.课题概述 基于四象限比例积分控制器的直流电机控制系统simulink建模与仿真。2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a4.系统原理简介直流电机由于其较好的调速性能和较高的控制精度,被广泛应用于各种工业控制场合。为了实现对直流电机转速和位置的精确控制,控制…

人工智能驱动的内部知识库:智能搜索、推荐与知识发现

随着人工智能技术的飞速发展,企业内部知识库的管理与应用方式正经历着前所未有的变革。智能搜索、个性化推荐与深度知识发现,这些曾经只存在于科幻小说中的场景,如今已借助AI技术,在企业的日常运营中成为现实。在这一变革浪潮中,HelpLook作为一款集成了先进AI算法的工具,…

视野修炼-技术周刊第116期 | NB Ping

① NB Ping - 多地址并发 Ping 工具 ② 动画图标 ③ RSS.Beauty - RSS 订阅源美化展示 ④ Console.trace:JavaScript调试的利器 ⑤ 关于跨端的前世今生 ⑥ LogoShip - 图标生成器欢迎来到第 116 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介 🔧开源工具&技术…

深度学习CUDA环境安装教程---动手学深度学习

首先说明我安装的是《动手学深度学习》中的环境 本人是小白,一次安装,可能有不对的地方,望包含。安装CUDA 因为我们是深度学习,很多时候要用到gpu进行训练,所以我们需要一种方式加快训练速度。 通俗地说,CUDA是一种协助“CPU任务分发+GPU并行处理”的编程模型/平台,用于…

基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真

1.程序功能描述 基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真.于过热气温控制系统过于复杂,涉及多个过热器及减温过程,在本次设计中将模型简化成喷水减温器和末级过热器的组合,对喷水减温器部分和蒸汽受热管部分进行数学建模,在建模过程中按均匀传热考虑,…

2024-2025-1 20241408陈烨南《计算机基础与程序设计》第十四周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标 无作业正文 本博客链接教材学习内容总结 无 教材学习中的问题和解决过程 Q:如何倒序输出字符串? A: 基于AI的学习代码调试中…