Ubuntu CUDA相关问题全解(版本查看、安装、多版本切换、conda虚拟环境使用CUDA版本确定)

问题描述

在运行和学习 Pytorch 工程库时,不少项目会限定所使用的 Pytorch 和 cuda 版本信息。为了满足应用程序和框架本身对不同版本的 cuda 的需求,介绍如何本地环境确定所使用的cuda版本,如何切换cuda版本适配不同工程要求。

概念简介

Nvidia 官方提供的 CUDA Toolkit
是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
安装路径: /usr/local/cuda

Annaconda 的 cudatoolkit
对于 Pytorch 之类的深度学习框架而言,Pytorch 本身与 CUDA 相关的部分是提前编译好的 ,只需要其所依赖的动态链接库存在即可正常运行,在安装了cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit。
安装路径:/home/xxx/anaconda3/pkgs/

一、查看现有系统目录下CUDA版本

cuDNN版本查看

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

CUDA运行API版本查看

nvcc -V

或者:
在/usr/local路径下通过stat cuda命令查看当前使用的CUDA版本:

cd ~/usr/local
stat cuda

CUDA驱动API版本查看

nvidia-smi

二、安装新版本

CUDA:CUDA下载地址
1、下载对应版本的CUDA安装包(选择下载runfile文件 .run文件)
在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

2、在下载文件的目录下,通过sudo sh cuda_10.0.130_410.48_linux.run命令进行安装,安装过程中各项选择如下:

#..一堆协议说明...
accept/decline/quit: accept  #接受协议

# 提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing 
如果当前nvidia-smi中的CUDA Version高于安装版本,可选择continue
在下一步中去除driver项(在driver上回车),选择install

在这里插入图片描述

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n #如果之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**
 
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: n #不安装样例

安装成功后提示(需添加环境变量、需要的话后续可单独安装driver):

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.8/

Please make sure that
 -   PATH includes /usr/local/cuda-11.8/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.8/lib64, or, add /usr/local/cuda-11.8/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.8/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 520.00 is required for CUDA 11.8 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

3、查看环境变量:

sudo gedit ~/.bashrc

确保存在:

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

使配置的环境生效:

source ~/.bashrc

4、安装后,在/usr/local路径下,通过ls命令查看是否存在新安装的CUDA目录:

cd /usr/local
ls

cuDNN:cuDNN下载地址
1、首先下载对应版本的cuDNN
2、cd到cudnn所在的文件夹下进行解压等操作:

wget https://developer.download.nvidia.com/compute/cudnn/9.1.0/local_installers/cudnn-local-repo-ubuntu2204-9.1.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.1.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.1.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

Ubuntu中安装cudnn详细步骤参考:链接: Ubuntu系统安装CUDA和cuDNN

三、CUDA版本切换

总览:

#在切换cuda版本时
rm -rf /usr/local/cuda  #删除之前创建的软链接,//删除软链接,注意是 /usr/local/cuda 而不是 /usr/local/cuda/,前者仅删除软链接,而后者会删除软链接所指向的目录的所有内容,操作请小心
sudo ln -s /usr/local/cuda-11.8/ /usr/local/cuda/ #建立新的指向cuda-11.8的软连接
nvcc --version #查看当前 cuda 版本

1、查看当前 cuda 版本

cd ~/usr/local
stat cuda

在这里插入图片描述
当前cuda软链接在cuda-11.6上

2、切换版本

#cuda11.6 切换到 cuda11.8 
cd ~/usr/local
sudo rm -rf cuda
sudo ln -s cuda-11.8 cuda
stat cuda

四、确定pytorch所使用的cuda版本

查看编译时版本:

import torch
    >>>torch.version.cuda  # 输出一个 cuda 版本
    >>>torch.__version__  # pytorch版本查看

查看运行时版本:

import torch
    >>> import torch.utils
    >>> import torch.utils.cpp_extension
    >>> torch.utils.cpp_extension.CUDA_HOME  #输出 Pytorch 运行时使用的 cuda 

cuda使用时查询路径:

若在运行时需要使用 cuda 进行程序的编译或其他 cuda 相关的操作,Pytorch 会首先定位一个 cuda 安装目录(来获取所需的特定版本 cuda 提供的可执行程序、库文件和头文件等文件 )。具体而言,Pytorch 首先尝试获取环境变量CUDA_HOME/CUDA_PATH 的值作为运行时使用的 cuda 目录。若直接设置了 CUDA_HOME/CUDA_PATH 变量,则Pytorch 使用 CUDA_HOME/CUDA_PATH 指定的路径作为运行时使用的 cuda 版本的目录。

若上述环境变量不存在,则 Pytorch 会检查系统是否存在固定路径 /usr/local/cuda。默认情况下,系统并不存在对环境变量 CUDA_HOME 设置,故而 Pytorch 运行时默认检查的是 Linux 环境中固定路径 /usr/local/cuda 所指向的 cuda 目录。

从 Pytorch 确定使用的 cuda 版本的流程来看,想要指定 Pytorch 使用的 cuda 版本,主要有两种方法:
1、修改软链接 /usr/local/cuda 所指向的 cuda 安装目录

#cuda11.6 切换到 cuda11.8 
cd ~/usr/local
sudo rm -rf cuda
sudo ln -s cuda-11.8 cuda
stat cuda

2、通过设置环境变量 CUDA_HOME 指向所需使用的 cuda 版本的安装目录。

临时方案:通过 export 命令修改全局变量,在当前终端退出后即失效:

export CUDA_HOME=/usr/local/cuda-11.8/   //设置全局变量 CUDA_HOME
export PATH=$PATH:/usr/local/cuda-11.8/bin/  //在 PATH 变量中加入需要使用的 cuda 版本的路径,使得系统可以使用 cuda 提供的可执行文件,包括 nvcc

参考博文:
https://zhuanlan.zhihu.com/p/91334380
https://blog.csdn.net/qq_41094058/article/details/116207333

  • 13
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴回答您的问题Ubuntu Anaconda安装PyTorch CUDA=11.6 GPU版本的步骤如下:1. 安装CUDA 11.6;2. 安装Anaconda;3. 通过Anaconda安装PyTorch;4. 安装CUDA Toolkit;5. 激活GPU版本PyTorch。 ### 回答2: 要在Ubuntu安装PyTorch CUDA 11.6 GPU版本,可以按照以下步骤进行: 1. 首先,确保您的系统中已经安装了合适版本的NVIDIA驱动程序,以支持CUDA 11.6。可以使用以下命令检查已安装的NVIDIA驱动程序版本: ``` nvidia-smi ``` 2. 接下来,安装Anaconda来管理Python环境。您可以从Anaconda官方网站下载适用于Ubuntu的Anaconda安装程序。下载完毕后,运行以下命令安装Anaconda: ``` bash Anaconda-latest-Linux-x86_64.sh ``` 3. 安装完成后,更新Anaconda: ``` conda update --all ``` 4. 创建一个新的conda环境,并激活该环境: ``` conda create --name myenv conda activate myenv ``` 5. 添加conda源,以便安装PyTorch和CUDA 11.6: ``` conda config --add channels conda-forge conda config --add channels pytorch ``` 6. 安装PyTorch和CUDA 11.6: ``` conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge ``` 7. 安装完成后,您可以使用以下命令验证是否成功安装: ``` python import torch print(torch.cuda.is_available()) ``` 如果输出为True,则表示PyTorch与CUDA 11.6 GPU版本已成功安装在您的Ubuntu系统上。 请注意,安装过程可能需要一些时间,并且根据您的系统配置以及网络连接状况,可能会有一些额外的依赖项需要安装。您可以根据安装提示进行相应的操作。 ### 回答3: 要在Ubuntu安装PyTorch的CUDA 11.6 GPU版本,可以按照以下步骤进行操作: 1. 首先,在Ubuntu安装Anaconda,可以从Anaconda官方网站下载适用于Linux的Anaconda安装程序。 2. 下载安装完成后,在终端中输入以下命令以创建并激活一个新的Anaconda环境: ``` conda create --name pytorch_env conda activate pytorch_env ``` 3. 接下来,安装CUDA 11.6驱动程序。可以从NVIDIA官方网站下载并根据说明进行安装。确保所使用CUDA版本与显卡兼容。 4. 在Anaconda环境中安装PyTorch和必需的依赖项。可以使用conda命令或pip命令进行安装。以下是使用conda安装的示例命令: ``` conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch ``` 或者,使用pip命令安装: ``` pip install torch==1.9.0+cu116 torchvision==0.10.0+cu116 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html ``` 这将安装PyTorch 1.9.0版本及其相关软件包,并与CUDA 11.6版本进行连接。 5. 安装完成后,可以编写和运行使用PyTorch进行GPU计算的程序了。可以在Python脚本中导入PyTorch库,并使用GPU进行计算。示例代码如下: ```python import torch # 检查CUDA是否可用 if torch.cuda.is_available(): device = torch.device("cuda") # 将张量分配给GPU x = torch.tensor([1.0, 2.0]).to(device) y = torch.tensor([3.0, 4.0]).to(device) z = x + y print(z) else: print("CUDA不可用") ``` 以上是在Ubuntu使用Anaconda安装PyTorch CUDA 11.6 GPU版本的一般步骤。具体的安装细节可能会根据系统的配置和要求有所不同,请确保根据实际情况进行相应调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值