目录
5.3 conda install 与 pip install
默认你已经完成Ubuntu20.04的安装,如果没安装的话可以参考其他博客,我的显卡是GTX1660Ti
一、NVIDIA显卡驱动安装
大多数人在安装Ubutnu20.04系统的时候为了节约时间,通常不会勾选“图形或无线硬件,以及其他媒体格式安装第三方软件”,系统会默认使用Ubuntu社区自己开发的开源显卡驱动“nouveau”,而不是NVIDIA的显卡驱动,这里我主要讲如果没有勾选那个选项,后续该如何操作。
实际上,Ubuntu为我们提供了可以下载NVIDIA显卡驱动的地方,打开“软件与更新”,点击“附加驱动”,此时会看到目前使用的显卡驱动是“使用X.Org X server - Nouveau display driver 来自 xserver-xorg-video-nouveau(开源)”,我们从中选择一个NVIDIA的专有驱动就好,比如我选择的是“nvidia-driver-470(专有)”,其中的470表示驱动版本,建议不要选太高,如图:
点击“应用更改(A)”即可,少等片刻,此时会系统会自动安装NVIDIA的显卡驱动替换掉原来的nouvean显卡驱动。
安装完成以后有时需要重启一下电脑才能使用nvidia-smi命令找到驱动信息。
二、安装CUDA
2006年,NVIDIA公司发布了CUDA(Compute Unified Device Architecture),是一种新的操作GPU计算的硬件和软件架构,是建立在NVIDIA的GPUs上的一个通用并行计算平台和编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序,利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。操作系统的多任务机制可以同时管理CUDA访问GPU和图形程序的运行库,其计算特性支持利用CUDA直观地编写GPU核心程序。CUDA提供了对其它编程语言的支持,如C/C++,Python,Fortran等语言。只有安装CUDA才能够进行复杂的并行计算。
CUDA版本要根据自己安装的显卡驱动来进行选择,打开一个终端,输入“nvidia-smi”可以查看显卡的信息,如图:
其中Driver Version: 470.223.02表示显卡驱动版本,CUDA Version: 11.4表示支持的CUDA版本最高为11.4(高版本的CUDA能向下兼容),172MiB / 5944MiB分子表示目前使用的显存,分母表示显卡总显存,大概为6G。
在CUDA Toolkit Archive | NVIDIA Developer下载CUDA安装包,我选择的是CUDA Toolkit 11.4.0,如图:
操作系统选择Linux,架构选择x86_64,平台选择Ubuntu,我电脑装的是Ubuntu20.04,因此版本我选择20.04,安装方式选择runfile(local),然后下面会根据前面的选择生成安装命令,如图:
终端执行第一条命令下载“cuda_11.4.0_470.42.01_linux.run”文件,如图:
终端执行第二条命令回车安装CUDA显卡驱动,稍等片刻进入以下界面:
选择“continue”后回车,进入下面界面:
输入“accept”后回车,进入下面界面:
因为我们之前已经安装了显卡驱动,因此需要点击空格键去掉安装显卡驱动的选项,然后选择install并回车。
前面密码我们已经输过,因此不用下意识输入密码,需要在这个界面等一会儿:
然后终端打印日志,完成CUDA安装:
此时可在终端输入命令nvcc -V查看cuda信息,可以看到:
这并不是因为系统没有安装CUDA,而是环境中没有罢了。千万不要执行sudo apt install nvidia-cuda-toolkit,否则可能会重新安装一个版本。而是需要配置CUDA的环境变量,输入gedit ~/.bashrc命令打开文件,在文件结尾输入以下语句,保存并source ~/.bashrc更新环境变量。
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
再次输入nvcc -V查看即可显示CUDA的版本:
至此,CUDA安装完成。
然后可以测试一下CUDA。系统安装CUDA包括两个部分:NVIDIA CUDA GPU计算工具包和NVIDIA CUD示例包两个部分。
如下图所示,Ubuntu20.04系统会默认地将CUDA的NVIDIA GPU计算工具包安装到/usr/local/文件夹下面,可以看到该文件夹下多了两个文件夹cuda和cuda-11.4。
对CUDA安装是否成功,需要进入NVIDIA CUDA示例包,其位于/home/fish/NVIDIA_CUDA-11.4_Samples内,在该文件夹下打开终端,并输入make。然后进入1_Utilities/deviceQuery文件夹,并在终端执行./deviceQuery 命令,如下result=PASS则表示安装成功。
三、安装cuDNN
cuDNN是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。
需要根据自己的CUDA版本安装对应的cuDNN,因此需要先安装CUDA才能安装cuDNN,点击Log in | NVIDIA Developer登录后可直接进入官网,我的CUDA版本为11.4,所以我选择了CUDA版本为11.4版本对应的cuDNN,如图下载Local Installer for Linux x86_64 (Tar):
对下载的cudnn-linux-x86_64-8.9.6.50_cuda11-archive.tar.xz
进行解压操作(右键“提取到此处”即可),然后进入文件夹:
cd cudnn-linux-x86_64-8.9.6.50_cuda11-archive/
执行下面两个命令,复制文件:
sudo cp -d -r ./lib/* /usr/local/cuda-11.4/lib64/
sudo cp -r ./include/* /usr/local/cuda-11.4/include/
赋予权限:
sudo chmod a+r /usr/local/cuda-11.4/include/cudnn.h /usr/local/cuda-11.4/lib64/libcudnn*
查看信息:
cat /usr/local/cuda-11.4/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
四、安装Anaconda
在Free Download | Anaconda下载最新版Anaconda的.sh启动文件,本文我用的是Anaconda3-2023.09-0-Linux-x86_64.sh,在Anaconda3-2023.09-0-Linux-x86_64.sh所在目录执行以下命令:
bash Anaconda3-2023.09-0-Linux-x86_64.sh
全程选择enter或者yes即可,下图证明安装完成:
此时新建一个终端,会直接进入base环境:
五、Anaconda的简单使用
5.1 管理环境
(1)创建虚拟环境
conda create -n env_name python=3.8
这表示创建python版本为3.8、名字为env_name的虚拟环境。
创建后,env_name文件可以在Anaconda安装目录envs文件下找到。在不指定python版本时,自动创建基于最新python版本的虚拟环境。
(2)查看有哪些虚拟环境
conda env list
所显示的列表中,前面带星号“*“的表示当前活动环境,如图:
(3)激活虚拟环境
conda activate env_name
(4)退出虚拟环境
conda deactivate
(5)删除虚拟环境
执行以下命令可以将该指定虚拟环境及其中所安装的包都删除:
conda remove --name env_name --all
如果只删除虚拟环境中的某个或者某些包则是:
conda remove --name env_name package_name
(6)导出虚拟环境
很多的软件依赖特定的环境,我们可以导出环境,这样方便自己在需要时恢复环境,也可以提供给别人用于创建完全相同的环境。
#获得环境中的所有配置
conda env export --name myenv > myenv.yml
#重新还原环境
conda env create -f myenv.yml
5.2 管理包(package)
(1)查询看当前环境中安装了哪些包
conda list
(2)包的安装和更新
在当前(虚拟)环境中安装一个包:
conda install package_name
也可以用以下命令安装某个特定版本的包(以下例为安装0.20.3版本的numpy):
conda install numpy=0.20.3
可以用以下命令将某个包更新到它的最新版本:
conda update numpy
(3)包的卸载
conda uninstall package_name
这样会将依赖于这个包的所有其它包也同时卸载。
5.3 conda install 与 pip install
感谢博主笨牛慢耕的分享,这一部分参考他的博客:
conda可以管理非python包,pip只能管理python包。
conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
conda安装的包会统一下载到一个目录文件中,当环境B需要下载的包,之前其他环境安装过,就只需要把之间下载的文件复制到环境B中,下载一次多次安装。pip是直接下载到对应环境中。
conda只能在conda管理的环境中使用,例如比如conda所创建的虚环境中使用。pip可以在任何环境中使用,在conda创建的环境 中使用pip命令,需要先安装pip(conda install pip ),然后可以 环境A 中使用pip 。conda 安装的包,pip可以卸载,但不能卸载依赖包,pip安装的包,只能用pip卸载。
(2)能否混用
首先,不建议混用。混用容易导致库的依赖关系出现混乱,然后突然哪天环境可能就崩了,安装不了新的包,无法进行conda update之类的。
其次,由于conda的库确实不如pip的库丰富{很多包只在 pip 有:PYPI有15万可用包,而Anaconda repository中(使用conda命令安装)提供了1,500多个软件包,Anaconda cloud上(使用conda-forge或bioconda命令安装)的几千种其他软件包。所以有时候可能迫不得已要使用pip安装。切记,只有在conda install搞不定时才使用pip intall。 而且,最后使用虚拟环境进行环境隔离。
(3)安装在哪里
conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中。
(4)如何判断conda中的某个包是通过conda还是pip安装的(windows)
执行conda list
,用pip安装的包显示的build项目为pypi。如下图所示:
5.4 conda configuration
conda的配置文件为".condarc",该文件在安装时不是缺省存在的。但是当你第一次运行conda config命令时它就被自动创建了。".condarc"配置文件遵循简单的YAML语法。
(1)condarc文件在哪里
执行conda info,会有信息显示如下所示:
(2)Channel管理
追加conda-forge channel:
conda config --add channels conda-forge
移除conda-forge channel:
conda config --remove channels conda-forge
查询当前配置中包含哪些channels:
conda config --get channels