linux系统服务器无sudo权限升级cuda(两种方法)

Preliminary

首先搞清楚一些关系:

  1. cuda & nvcc

nvcc是CUDA编译器,它是CUDA工具链的一部分。CUDA编译器是用于将CUDA代码编译为能够在NVIDIA
GPU上运行的可执行代码的工具。

查看cuda版本:

nvcc -V

2.cuda & cuda tookit:

conda install cuda:

这个命令通常用于安装完整的 CUDA 工具包,包括所有与 CUDA 相关的库和工具。这个工具包包括 CUDA
驱动程序、编译器(nvcc)、性能分析工具、文档以及其他开发工具。它适合需要完整 CUDA 开发环境的用户,特别是需要编译 CUDA
代码的情况。 该安装包会占用较大的存储空间,因为它包含了完整的开发和运行环境。

conda install cudatoolkit:

这个命令主要安装 CUDA 运行时库(runtime libraries),而不包括编译器和其他开发工具。它主要用于运行基于 CUDA
的应用程序,而不是开发新的 CUDA 应用程序。 这个安装包的体积相对较小,因为它只包含了运行时所需的库,适合那些只需要在环境中运行
CUDA 应用程序的用户。 总结来说,如果你只是需要运行依赖 CUDA 的应用程序,使用 conda install cudatoolkit
就足够了;如果你需要开发和编译 CUDA 应用程序,那么你需要使用 conda install cuda。

  1. 使用nvidia-smi,查看右上角cuda version,此为推荐安装的最高cuda版本。

服务器升级cuda的两种途径(我用过的):

1. conda 虚拟环境安装

conda 安装的命令:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#conda-installation
上面网页的第九章:conda-installation

常见问题:nvcc未随CUDA Toolkit一起升级

在创建虚拟环境并使用conda install命令安装CUDA Toolkit时,很多人遇到一个常见问题:安装CUDA Toolkit后,nvcc(CUDA编译器驱动程序)似乎没有随之更新。这通常是由于nvcc依旧指向base环境中的路径,导致使用nvcc -V命令查看CUDA版本时,显示的仍然是旧版本。

错误示例

假设我们在虚拟环境中运行以下命令:

conda create -n myenv python=3.8
conda activate myenv
conda install cudatoolkit=11.2 #(这个未必准确,要按版本到官网找相关代码)

然后我们查看nvcc版本:

nvcc -V

结果发现nvcc版本没有改变。这是因为conda install cudatoolkit命令只安装了CUDA库,而没有安装nvcc编译器。

正确的升级方法
为了解决上述问题,我们需要确保在虚拟环境中安装完整的CUDA,包括nvcc。正确的命令应该是:

conda create -n myenv python=3.8
conda activate myenv
conda install cuda=11.2 #(这个未必准确,要按版本到官网找相关代码)

这样可以确保nvcc和CUDA库都正确安装在虚拟环境中。
再次查看nvcc版本,这时显示的CUDA版本应该与我们安装的版本一致。

2. nvidia官网 .run下载安装

有的时候想要安装低版本的cuda,conda没有现有的链接。这个时候推荐到官网安装.run文件。

到官网,查询对应的cuda版本,使用官网给出的wget下载,使用sh运行安装程序。官网给出的下载代码有sudo,可以把开头的sudo去掉。

官网链接:https://developer.nvidia.com/cuda-toolkit-archive

运行.run之后,首先accept协议,然后会跳转到选择安装文件。显示的图[2]应该如下:图片来自:https://blog.csdn.net/weixin_45944960/article/details/130000445
一般不推荐安装多个驱动,取消安装drive。

在option中选择更改安装路径:Change Tookit Install Path,然后更改到自己的用户文件夹下(最好新建一个文件夹存放)。

默认路径装到/usr下,假如没有sudo权限,会显示Permission Denied。

Optional[2]:

安装好后就可以安装cudnn

cuDNN Archive | NVIDIA Developer

选择对应版本,建议安装后缀为tgz的

然后解压,复制一些文件,记得把路径改成你自己的

tar -zxvf cudnn-10.0-linux-x64-v7.6.4.38.tgz cp cuda/include/cudnn.h
/home/wanggexuan/cuda-10.0/include/ cp cuda/lib64/libcudnn*
/home/wanggexuan/cuda-10.0/lib64 chmod a+r cuda/include/cudnn.h
cuda/lib64/libcudnn*

最后,配置cuda环境变量

先更新当前 Bash 会话环境的命令:

source .bashrc

将cuda加入到环境变量中去,记得修改路径:

export PATH="$PATH:/home/wgx/cuda-10.0/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/wgx/cuda-10.0/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/home/wgx/cuda-10.0/lib64"

验证路径和环境变量

如果在升级后仍然遇到问题,可以检查以下几点:

1.检查nvcc路径:

which nvcc

确保nvcc指向虚拟环境中的路径。

2.检查CUDA路径:

echo $PATH
echo $LD_LIBRARY_PATH
echo $CUDA_HOME

确保环境变量CUDA_HOME设置为虚拟环境中的CUDA路径,而不是base环境中的路径。

3.检查环境变量:

env | grep CUDA

查看所有与CUDA相关的环境变量,确保它们指向正确的路径。

通过以上方法,可以确保在虚拟环境中正确升级和配置CUDA版本,从而避免由于路径问题导致的编译和运行错误。

参考链接:
【1】https://blog.csdn.net/qq_41094058/article/details/116207333
【2】https://blog.csdn.net/weixin_45944960/article/details/130000445

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值