搭建深度学习开发环境过程中容易出现各种问题。

本文结合自身经验简要写一下安装的步骤和可能会出现的问题,仅供参考,欢迎指正交流。

环境工具的概念理解

1、显卡驱动NVIDIA driver

  • nvidia-driver是操作系统与NVIDIA GPU硬件之间的软件接口。
  • 显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。
  • 安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。

2、CUDA和CUDA Toolkit

  • CUDA是一个并行计算平台和API,而CUDA Toolkit是实现CUDA功能的软件开发工具包。
  • cuda是nvidia推出的基于nvidia显卡的并行计算平台和编程模型可以提高nvidia显卡的性能。CUDA支持C/C++,Python,Fortran等语言。只有安装CUDA才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。
  • CUDA Toolkit是包含用于CUDA开发的一系列软件工具和库的集合。包括CUDA编译器(NVCC)、CUDA运行时库、CUDA驱动程序等组件,它们协同工作,使得开发人员可以使用C或C++编写GPU加速的代码。
  • 包含关系:CUDA Toolkit实际上包含了CUDA的所有组件。当你安装cuDToolkit时,你实际上已经拥有了CUDA的所有功能。因此,在很多情况下,人们会将CUDA和cuDToolkit视为同一个概念

3、cuDNN

全称为NVIDIA CUDA® Deep Neural Network library,cudnn是基于Cuda针对深度卷积神经网络加速库,有了它可以在GPU上完成高效的深度学习计算。CUDA这个平台一开始并没有安装cuDNN库,当开发者们需要用到深度学习GPU加速时才安装cuDNN库,工作速度相较CPU快很多。

4、NVCC

  • NVCC是CUDA的编译器,属于CUDA Toolkit的一部分,位于运行时层。
  • NVCC是一种编译器驱动程序,用于简化编译C++或PTX代码。它提供简单且熟悉的命令行选项,并通过调用实现不同编译阶段的工具集合来执行它们。
  • 开发者在编写CUDA程序时,需要使用NVCC来编译包含CUDA核心语言扩展的源文件。

5、anaconda

是开源的python和R语言发行版和包管理器,内置有几百个python的第三方库、包管理工具conda、可视化界面Navigator、IDE。我们使用anaconda进行python运行环境和工具包的管理。

6、pytorch

是深度学习的一个框架,有强大的张量计算能力,包含自动求导系统的深度神经网络,所以在深度学习的时候用PyTorch会比较快。

打比方

①有一个比喻能够更形象的说明CUDA、cuDNN两者的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

nvidia-smi命令行工具

GPU系列(五)-nvidia-smi 基本使用-CSDN博客

nvidia-smi是 NVIDIA 提供的一个命令行工具,用于监控和管理 NVIDIA GPU 设备的状态和性能。

它可以显示关于GPU的各种信息,如GPU型号、驱动版本、显存使用情况、温度、功耗等。此外,nvidia-smi还可以用于查询和设置GPU的某些配置参数。

一、显卡驱动的安装

  • nvidia-driver(NVIDIA驱动程序)是操作系统与NVIDIA GPU硬件之间的软件接口。它负责管理GPU硬件的操作、资源分配、性能优化等任务。
  • CUDA依赖于NVIDIA的驱动程序,因为它需要与GPU硬件进行通信以执行并行计算任务。在使用CUDA进行开发时,确保安装了与CUDA兼容的NVIDIA驱动程序是很重要的。
  • 驱动的定义:驱动(Driver)是一种计算机程序或软件,它允许操作系统或其他软件与硬件设备进行通信和交互。驱动程序的主要作用是提供对硬件设备的抽象接口,使操作系统或应用程序能够使用硬件而无需了解其具体细节。

二、CUDA安装

关于安装:在安装CUDA前我们要检查本机上是否有nvidia显卡,如果有nvidia显卡,那我们需要先安装nvidia显卡驱动,接着才能安装cuda。

CUDA的安装需要下载安装CUDA toolkit和cuDNN两个安装包

1、CUDAtoolkit下载安装

具体请参考CUDA与cuDNN安装教程(超详细)-CSDN博客


cd C:\Program Files\NVIDIA Corporation\NVSMI\

nvidia-smi.exe

查看自己本机适合的CUDA版本,注意安装版本不可高于系统显卡所允许的最高版本。

如下所示安装完成后要注意查看环境变量是否添加成功。

使用nvcc -V查看是否安装成功并查看它的版本号。

2、cuDNN安装

具体请参考CUDA与cuDNN安装教程(超详细)-CSDN博客

cuDNN并不是一个可运行程序,而是DCUDA的一个补丁专门优化深度学习运算。只需要将下载解压后的cuDNN中的三个文件夹复制到CUDA的默认安装路径即可。我的是

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6

添加后再次配置环境变量

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\libnvvp

三、anaconda安装

此处建议挂梯子直接外网下载,速度快!

各位可以参考这篇博客第二部分,详细介绍了anaconda的下载安装。

已经安装了python如何与anaconda共存?_python和anaconda可以共存吗-CSDN博客

ps:如果本机有python可以使用geek卸载,一个anaconda就可以装任意个python了。

四、pytorch安装

1、什么是pytorch?

介绍PyTorch之前,不得不说一下Torch。Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor)操作库,其特点是特别灵活,但因其采用了小众的编程语言是Lua,所以流行度不高,这也就有了PyTorch的出现。所以其实Torch是 PyTorch的前身,它们的底层语言相同,只是使用了不同的上层包装语言。PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。

2、pytorch安装

由于anaconda中能搭建很多虚拟环境,我们只需在要用到pytorch的虚拟环境中安装pytorch即可。

pytorch安装请具体参考2023最新pytorch安装(超详细版)-CSDN博客3.4部分

pytorch和cuda、pytorch和python都有版本对应关系,请参考

pytorch和cuda版本对应可参考pytorch官网:

Previous PyTorch Versions | PyTorch

pytorch和python版本对应可参考:

01 Pytorch和CUDA对应的版本及Pytorch和Python对应的版本及Python与Anaconda的对应关系_pytorch和cuda对应版本-CSDN博客

如果在anaconda某个虚拟环境中导入pytorch包发生错误,则把该虚拟环境删除后重新下载后再导包。

3、Anaconda conda常用指令(管理虚拟环境和包)


------------------------其他操作------------------------------
conda create -n myenv python=3.10 --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/    #以指定源安装环境




------------------------虚拟环境操作------------------------------
conda create –n 虚拟环境名字 python=版本                 #anaconda创建虚拟环境
conda env list                                          #anaconda查看已安装的虚拟环境
conda activate   虚拟环境名称                            #anaconda激活虚拟环境 
conda deactivate 虚拟环境名称                            #anaconda退出虚拟环境 

第一步:首先退出环境 conda deactivate
第二步:删除环境 conda remove -n 需要删除的环境名 --all    #anaconda删除虚拟环境


--------------------对安装通道操作----------------------------
conda config --get                                      #查看安装通道地址
conda config --add channels    通道地址                  #添加通道地址
conda config --remove channels 通道地址                  #删除通道地址



------------------------对包操作------------------------------
!对库操作前注意要先激活要查看的虚拟环境
conda activate 要查看虚拟环境的名字

conda list                                              #查看已安装包的列表
conda list package-name                                 #查看某个包的安装状态
conda install package-name                              #anaconda安装包
conda uninstall package-name                            #卸载包
python进入python环境;import 包名;print(包名._file_);  #查看已安装的包的路径 



六、版本对应问题

显卡驱动的版本:显卡驱动越新越好

显卡驱动版本和CUDA版本:不是一一对应的,一台电脑上可以安装很多个CUDA。

七、安装顺序

  1. 先安装nvidia显卡驱动
  2. cudatoolkit安装
  3. cuDNN安装
  4. anaconda安装
  5. 创建一个虚拟环境
  6. 在需要的虚拟环境中安装第三方库(本文以pytorch为例)

更多推荐