本文在于理清深度学习环境搭建中各项安装任务间的关系。
1.GPU的介绍
CPU是中央处理器,是计算机系统的主要处理器,负责执行大多数的计算和操作。CPU通常具有较高的时钟频率和较小的缓存大小,适合执行串行计算和控制流操作。
GPU是图形处理器,最初用于处理图形和视频渲染。GPU通常具有许多更小的处理器核心,每个核心可以同时执行多个线程,这使得GPU在执行大规模并行计算时表现更好。GPU通常用于加速科学计算、机器学习、图形渲染等任务。
在实践中,GPU通常被用作CPU的辅助处理器,用于执行需要大规模并行计算的任务,如科学计算、机器学习等。GPU可以处理大量的数据并行计算,并且通常比CPU更具成本效益。GPU通常用于执行大规模并行计算,而CPU则用于执行串行计算和控制流操作。
补充:串行计算和并行计算的特点
串行计算是指按照顺序逐步执行计算任务,每个计算步骤依赖于前一个计算步骤的结果。在串行计算中,只有一个处理器(如CPU)用于执行计算任务,计算任务按照线性顺序逐个完成。这种计算方式的特点是计算步骤之间存在依赖关系,每个计算步骤必须等待前一个计算步骤完成后才能开始执行,因此计算速度相对较慢。
并行计算是指同时使用多个处理器或计算资源来执行计算任务,将任务划分为多个子任务,并行地进行计算。在并行计算中,多个处理器可以同时执行不同的子任务,各个计算步骤可以并行进行。这种计算方式的特点是可以大大提高计算速度,特别适用于需要处理大量数据或进行复杂计算的任务。
2.cuda——GPU并行计算平台
CUDA是NVIDIA公司所开发的GPU编程模型,基于CUDA编程可以构建基于GPU计算的运用程序。(简单理解就是cuda作为一种编程语言框架实现了对于gpu计算的调用)
3.cudnn——针对深度学习卷积神经网络的加速库。
cudnn可以加速计算速度,需要在有cuda的基础上进行。两者都只服务于NVIDIA公司自己的GPU
安装cuda和cudnn:
利用下面的命令可以查看自己电脑所支持的最高的cuda版本,在命令行中输入:
nvidia-smi
安装低于最高的版本都行,去官网下载即可。
安装cudnn,在官网上选择匹配的cuda版本进行下载即可。
补充:其实一台电脑上是可以装多个cuda版本的,并且可以便捷的实现切换。
首先可以查看自己电脑上安装了哪些cuda版本
~/work/mmdetection3d-1.0.0rc5$ cd /usr/local
/usr/local$ ls
bin cuda cuda-11.6 cuda-12.1 doc etc games include lib man sbin share src
切换到/usr/local目录下即可查看。对于我的服务器电脑,安装了cuda-11.6和cuda-12.1两个版本
查看软链接指向哪个版本
stat cuda
查看当前使用哪个版本
nvcc -V
这两个版本应该相同,否则得进行相应操作修改
接着更改环境变量
vim ~/.bashrc
把里面的cuda-11.6(特定版本号)全部改成cuda,为了之后便于切换cuda版本。
source ~/.bashrc
保存更新修改。
最后切换自己想要使用的cuda版本(很多时候得和深度学习所需环境所匹配)
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-12.1 /usr/local/cuda
这样就是实现了把原来的11.6版本切换回了12.1版本。再用nvcc -V检查当前版本即可。
4.Anaconda的安装
Anaconda是一个非常流行的Python和R的数据科学和机器学习平台,它包含了conda包管理器和虚拟环境管理系统。当你安装Anaconda时,它通常会安装在你的用户目录下的某个位置,例如,在Linux上,它可能安装在~/anaconda3或~/miniconda3目录下(取决于你选择的安装程序版本)。
从官网上下载安装即可。
补充:pip和conda的关系和区别
pip主要用于Python包的安装和管理,它默认使用Python Package Index(PyPI)作为包的源。而conda是一个跨平台的包管理工具,它可以管理多种编程语言的包,并且默认使用Anaconda仓库作为包的源。pip主要专注于Python相关的软件包,因此在PyPI上可以找到大量的Python包。conda的包集合相对较小,但它提供了许多其他语言和工具的软件包,例如R、Julia、C++等。
简单理解:pip专注于python,提供的python包更全。conda可以提供其他语言的功能包。
5.创建虚拟环境。
对于每个项目,要求的包的版本都不相同,所以我们希望对于一个项目创造属于它自己的虚拟环境,在其中配置它所需要版本的功能包,防止冲突。一般情况在虚拟环境中安装功能包时,我们考虑优先使用conda安装,对于conda中没有的python包,再使用pip安装。
conda create --name myenv python=3.8
#创建了名字为myenv的虚拟环境
conda activate myenv
#激活创建好的虚拟环境,在其中安装包,运行项目文件
conda deactivate myenv
#退出虚拟环境,返回(base)
当安装好虚拟环境后,我们一般开始安装功能包,对于深度学习项目,首先是安装pytorch,到官网上,根据自己cuda版本,选择适当的下载命令即可。
对于其他的包,考虑兼容性问题,可以去官网上选择适当的下载命令,也可以用简单的命令安装。
conda install mmcv #一般是最新版本
conda install mmcv==2.2.0 #指定版本
pip install mmcv
pip install mmcv==2.2.0
删除包
conda uninstall mmcv
pip uninstall mmcv
对于新手来说,在跑github上的项目最先遇到的问题一般就是环境的配置,包和包经常会发生版本的冲突。一定要参考readme确定好项目适配的版本环境,或者参考官方文档或csdn查看兼容的包的版本。许多时候得不断下调各包的版本实现兼容,所以需要熟练掌握上述安装卸载命令。
还有个小坑:github项目gitclone下来的都是项目的最新版本,文件代码是最新的,调用包等的代码可能和过去包产生冲突,所以一定要按要求装过去指定的版本。可以不用gitclone,而是download zip把指定版本的项目下载下来,再拖到编译器工作区间中。
6.编辑器的选择
笔者是连实验室的远程服务器,所以用的vscode,可以直接把本地电脑的文件复制粘贴到远程服务器的工作目录下。(通过vscode)