Anaconda创建虚拟环境+CUDA、cuDNN一同安装


前言

在学习机器学习 / 深度学习时,我们不可避免的需要跑多个神经网络,而不同的神经网络环境都不一样(复现不同的文章,代码要求的环境也不一样),所以必须要使用到虚拟环境(如Anaconda)去做环境隔离,安装不同的所需环境。在这环境中,大多神经网络都必须要用到CUDA和cuDNN。不同的神经网络需求版本不同,本章记录了在自创建的虚拟环境中安装CUDA和cuDNN。


一、CUDA的作用

通俗地说,CUDA是一种协助“CPU任务分发+GPU并行处理”的编程模型/平台,用于加速GPU和CPU之间的计算。即,CUDA通过CPU任务分发和GPU并行处理的方式,把计算任务通过CPU分发给GPU进行并行计算加速。

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够参与解决复杂的计算问题

二、下载CUDA的步骤

有很多博客的方法是手动安装 CUDA 或 cuDNN(例如通过 NVIDIA 官网下载),那么您需要确保它们的版本和安装路径配置正确,并在运行 PyTorch 之前正确设置环境变量。
本博客通过用 conda 语句安装 ,可以选择安装合适的 CUDA 版本。在这种情况下,cuDNN 的相关库会与 CUDA 一起安装,因此您不需要单独下载和安装 cuDNN。

2.1 查看电脑NVIDIA适合的CUDA版本( 两种方法)

1)打开NVIDIA控制面板,目前我的CUDA版本是12.1

在这里插入图片描述

2)使用命令行查看,使用命令:nvidia-smi

nvidia-smi 是一个 NVIDIA 提供的工具,用于监控 GPU 状态。它通常也能显示安装的 CUDA 版本。

CUDA Version: 12.1 表明当前的显卡驱动可以安装的cuda最高版本是12.1。
在这里插入图片描述

2.2 根据pytorch版本确定cuda和cudnn的版本

1)在已创建的虚拟环境中安装CUDA

若已经创建了虚拟环境,但是未安装CUDA的情况,首先查看已经创建的虚拟环境中pytorch版本。

  • 进入虚拟环境
# activate (虚拟环境的名称)
activate torch113_py38
  • 查看pytorch版本
# 进入python环境
python	
# 导入pytorch包,查看版本
import torch
torch.__version__	# (此处是双下划线)

我使用的pytorch版本是1.13.1。下一步,去官方网站上,找对应的cuda版本。
在这里插入图片描述

在官网可以看到,pytorch版本为1.13.0对应的CUDA版本可以是11.6或11.7。有三个版本可以下载,其中# CUDA可以使用CPU和GPU;# CPU只能使用CPU。
在这里插入图片描述
使用命令下载CUDA:

conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia

在这里插入图片描述
下载成功后会显示:
在这里插入图片描述

  • 验证是否安装成功,若显示True,则下载成功
# 进入python环境
python
import torch
print(torch.cuda.is_available())

在这里插入图片描述
查看CUDA下载的版本:

nvcc --version

在这里插入图片描述

在这里插入一个知识点:nvcc & nvidia-smi的区别
可学习blog:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
CUDA主要有两个API:runtime API、driver API。

  1. 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。
  2. 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。
  3. nvidia-smi属于driver API、nvcc属于runtime API。
  4. nvcc属于CUDA compiler-driver tool,只知道runtime API版本,甚至不知道是否安装了GPU driver。
  • 检查 CUDA 和 cuDNN 的可用性:要验证 PyTorch 是否可以正确使用 CUDA 和 cuDNN,您可以在 Python 环境中运行以下命令,来检查可用的 CUDA 设备:
import torch
print(torch.cuda.is_available())  # 检查 CUDA 是否可用
print(torch.backends.cudnn.enabled)  # 检查 cudnn 是否启用

cuDNN的作用:
cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
cuDNN 是 NVIDIA 提供的一个深度学习库,它为深度学习框架提供了高效的卷积操作和其他深度学习相关的功能。通过使用 cuDNN,PyTorch 可以在运行深度学习模型时更高效地利用 NVIDIA GPU 的计算能力。

2)虚拟环境和CUDA 均未创建的情况

  • 创建虚拟环境
conda create -n name python=3.X

name是环境名,3.x是python版本
如果创建名为torch2.0,python版本为3.8的虚拟环境,命令为:conda create -n torch113_py38 python=3.8

  • 进入激活虚拟环境中:命令为activate name,其他安装内容,跟情况1一致。

总结

安装 PyTorch 的过程中已经通过命令行指定了 CUDA 版本,那么您不需要单独再安装 cudatoolkit
可以通过命令查看已安装的包:

conda list

在本博文记录的下载方法中,已下载了包括CUDA和cuda-toolkit的包。
在这里插入图片描述

### 如何在服务器虚拟环境安装配置 cuDNN 要在服务器虚拟化环境下成功安装并配置 cuDNN,可以按照以下方法操作: #### 准备工作 确保已正确安装 CUDA 工具包,并验证其功能正常。如果尚未完成此步骤,请先通过官方文档或相关资源完成 CUDA 安装。 #### 步骤说明 1. **下载 cuDNN 文件** 访问 NVIDIA 官方网站获取适用于当前系统的 cuDNN 版本。登录开发者账户后,在页面中找到对应的操作系统、CUDA 版本以及架构的 cuDNN 下载链接[^4]。 2. **解压 cuDNN 压缩包** 将下载好的压缩文件上传至目标服务器并通过命令行工具对其进行解压: ```bash tar -xzvf cudnn-linux-x86_64-*.tar.xz ``` 3. **复制头文件到指定目录** 使用 `cp` 命令将 cuDNN 提供的头文件拷贝至 CUDA 的默认路径下,注意替换具体的版本号以匹配实际使用的 CUDA 路径: ```bash cp include/cudnn.h /usr/local/cuda-<version>/include/ cp include/cudnn_version.h /usr/local/cuda-<version>/include/ ``` 4. **复制库文件到相应位置** 同样地,把动态链接库也移动过去以便程序能够调用它们: ```bash cp lib/libcudnn.so.* /usr/local/cuda-<version>/lib64/ chmod a+r /usr/local/cuda-<version>/lib64/libcudnn* ``` 5. **更新环境变量** 如果未设置好 LD_LIBRARY_PATH,则需手动添加 cuda 库的位置进去,使得运行时能自动加载这些共享对象: ```bash export LD_LIBRARY_PATH=/usr/local/cuda-<version>/lib64:$LD_LIBRARY_PATH ``` 6. **测试安装情况** 编译并执行简单的 C/C++ 测试案例来确认整个流程无误。可以从 NVIDIA 提供的例子入手或者自行编写一段小程序来进行验证。 以上就是在 Linux 平台上针对 TensorFlow GPU 支持所必需的一系列准备工作之一——cuDNN 配置过程概述。 ```python import tensorflow as tf print(tf.test.is_built_with_cuda()) # 检查TensorFlow是否支持CUDA print(tf.config.list_physical_devices('GPU')) # 列出可用的物理GPU设备 ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值