Anaconda虚拟环境+CUDA+Cudnn安装笔记

必要组件

1. CUDA版 PyTorch

2. cudatoolkit-xxxxx.conda 本地包

3. cudnn-xxx.donda 本地包(非必要,结合项目需求安装,不确定的可以先不装)


PyTorch-CUDA

先看下正确的PyTorch版本: conda list。注意一定要有cuda后缀!如果没有直接卸载重装PyTorch

PyTorch安装命令生成:Start Locally | PyTorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

CUDAtoolkit

在虚拟环境中安装完cuda和cudnn想要测试是否安装成功,不能使用nvcc -V命令测试,需要在虚拟环境中安装pytorch包测试!(不同驱动区别见CUDA、NVIDIA driver、多版本cuda - 知乎

(注意,必须安装cudatoolkit包,不然即使cuda.is_available返回True,代码运行时也会报错)

包下载:conda search cudatoolkit --info

执行上述命令后,会显示出源内所有的cuda版本,以及下载地址。找到自己想要的cuda版本后,复制url字段里的下载链接,下载到本地。

cd目录后,安装离线包:conda install --use-local cudatoolkit-11.8.0-hd77b12b_0.conda

 (cudnn安装详见文末的参考)

CUDA初步检测

import  torch
print('当前设备索引:'+str(torch.cuda.current_device() ))
print('GPU数量:'+str(torch.cuda.device_count()))
print('GPU型号:'+str(torch.cuda.get_device_name(0)))
print('cuda.is_available:'+str(torch.cuda.is_available()))
# 由于pytorch的whl安装包名字都一样,所以很难区分到底是基于cuda的哪个版本
print('version.cuda:'+str(torch.version.cuda))

 GPU运算实测

还不放心的话,打开任务管理查看GPU负载,运行下面的代码即可完成真实的GPU运算测试。(终端里没反应的话,用py文件运行)

import time
import torch
A = torch.ones(1000, 1000).to('cuda')
B = torch.ones(1000, 1000).to('cuda')
startTime = time.time()
for i in range(100000):
    C = torch.matmul(A, B)
    if (time.time() - startTime) > 10: #10秒压力测试
        break


其他测试

CUDA版本检测:如下图,CMD和conda命令行检测到的显卡驱动、CUDA版本完全一样,都是系统环境下的CUDA库(nvcc命令为nv官网完整CUDA包安装的检测),但是这个3G多的完整包不是必要的(涉及到需要cuda编译的库需要完整的CUDA包)!PyTorch只需要安装cuda的toolkit包即可。

CUDA 系统环境与虚拟环境关系

首先卸载系统CUDA完整包(nv官网那个)

此时经测试发现系统环境下CUDA已经不可使用,注意:nvcc -v为完整版本CUDA库的检测方式。

nvidia-smi为显卡驱动程序的命令,也就是说只要显卡能试用,这个命令理论上就可以使用,与CUDA驱动无关。

 nvidia-smi 输出的与控制面板的版本是一样的(均来自显卡驱动)

 但虚拟环境下torch的CUDA库仍然可用...吗?

经测试发现, 这个时候其实已经出问题了:

直接再次安装PyTorch,无法解决问题!搜索后尝试借鉴直接删除报错文件的方法(反正现在环境用不了了,死马当活马医吧...事实证明马变成泥马了~~~不要这么干)

首先卸载PyTorch:conda uninstall pytorch

然后再次安装PyTorch。

这个时候突然想起来好像没有安装cuda的库,掏出之前下载好的离线包安装。

(必须cd到包所在路径后执行命令):

conda install --use-local cudatoolkit-11.8.0-hd77b12b_0.conda

搞定,这次在Jupyter里面网络已经可以正常训练了,gpu的调用也是正常的。

所以NV官网的CUDA安装包不是必要的,只需要在Python或者Anaconda的虚拟环境下安装cudatoolkit包即可,只有几百兆大小!并且cudnn-8.9.2.26-cuda11_0.conda也不是必要的(至少对于我这个PyTorch项目现在用不到)!

显卡驱动版本和CUDA库版本

之前由于急着解决环境问题,病急乱投医,甚至把显卡驱动降级了(nvidia-smi给的那个版本)

后来又测试了下显卡驱动版本和cuda版本的关系:显卡驱动无需与cuda版本保持一致(对于游戏显卡来说装最新的驱动就行,/dog)

安装的CUDA库是11.8版本,最新的显卡驱动是12.2版本的CUDA支持,但是不影响PyTorch的GPU运算!因此别费力重装旧版本的显卡驱动了!


CUDA库对显卡驱动版本的要求,一句话就是:最新的显卡驱动就行。CUDA Compatibility :: NVIDIA Data Center GPU Driver Documentation

显卡驱动的CUDA版本,有需要的话参考下面的版本对应关系,CUDA版本号来自nvidia-smi,不是CUDA库的版本。

显卡驱动版本——自带CUDA版本

         536.40        12.2.79

         528.49        12.0.147     

         526.98        12.0.89

         472.84        11.4.176


参考:

cconda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了_conda cudnn_爱幻想-hjyp的博客-CSDN博客

 在pytorch中指定显卡 - 知乎 (zhihu.com)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装CUDAcuDNN的步骤如下: 1. 首先,下载CUDA安装文件。可以从NVIDIA官方网站下载对应版本的CUDA安装文件。使用wget命令下载安装文件,并将其移动到指定位置: ``` wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda-repo-ubuntu2004-11-2-local_11.2.0-460.27.04-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2004-11-2-local_11.2.0-460.27.04-1_amd64.deb sudo apt-key add /var/cuda-repo-ubuntu2004-11-2-local/7fa2af80.pub sudo apt-get update sudo apt-get -y install cuda ``` [1] 2. 接下来,安装显卡驱动。在安装CUDA之前,需要先卸载所有的驱动,并更新软件列表和安装必要的软件和依赖。查询硬件(显卡)信息,并从NVIDIA官网下载对应的驱动。最后,禁用默认驱动(nouveau是通用的驱动程序)。 [2] 3. 安装cuDNN。首先,从NVIDIA官方网站下载对应版本的cuDNN库文件。然后,将相关的库文件拷贝到CUDA安装目录中: ``` sudo cp include/cudnn* /usr/local/cuda/include/ sudo cp lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn* ``` [3] 完成以上步骤后,您的Ubuntu 20.04系统就安装好了CUDAcuDNN。请确保按照上述步骤进行操作,并根据您的系统和硬件配置选择正确的版本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值