文章目录
- 前言
- 一、CUDA的作用
- 二、下载CUDA的步骤
- 2.1 查看电脑NVIDIA适合的CUDA版本( 两种方法)
- 1)打开NVIDIA控制面板,目前我的CUDA版本是12.1
- 2)使用命令行查看,使用命令:`nvidia-smi`。
- 2.2 根据pytorch版本确定cuda和cudnn的版本
- 1)在已创建的虚拟环境中安装CUDA
- 2)虚拟环境和CUDA 均未创建的情况
- 总结
前言
在学习机器学习 / 深度学习时,我们不可避免的需要跑多个神经网络,而不同的神经网络环境都不一样(复现不同的文章,代码要求的环境也不一样),所以必须要使用到虚拟环境(如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版本。
- 在官方网站找对应的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。
- 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。
- 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。
nvidia-smi
属于driver API、nvcc
属于runtime API。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的包。