Anaconda
Anaconda 中文大蟒蛇,是一个开源的 Python 发行版本。
- 包含了包括 Python、Conda、科学计算库等180多个科学包及其依赖项。Anaconda就是可以便捷获取包且对包能够进行管理,包括了python和很多常见的软件库和一个包管理器 conda。
- 同时Anaconda还附带捆绑了两个非常好用的交互式代码编辑器(Spyder、Jupyter notebook)。
- 常见的科学计算类的库都包含在里面了,使得安装比常规python安装要容易,同时对环境可以统一管理的发行版本。因此,安装了 Anaconda 就不用再单独安装 Python。
conda
conda是一个包管理器,环境管理器。我们可以通过命令行(Anaconda prompt 或者终端)来使用它。
- 使用 conda 在 Anaconda 中创建和管理不同的虚拟环境;
- 安装、更新、卸载软件包,在安装软件包的时候能够自动安装其依赖项;
在 Anaconda 中 conda 可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。所以对虚拟环境进行创建、删除等操作需要使用 conda 命令。
和 pip 相比:
- pip:不一定会展示所需其他依赖包,安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误;pip 只是包管理器,无法对环境进行管理。
- conda:列出所需其他依赖包,安装包时自动安装其依赖项;可以便捷地在包的不同版本中自由切换;
如果想在指定环境中使用 pip 或者 conda 进行安装包,则需要先切换到指定环境中,再用命令安装。
CUDA
CUDA 是一个调用GPU的工具,现有的主流深度学习框架基本都是基于CUDA进行GPU加速的。
CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程模型,用于利用NVIDIA GPU进行通用目的计算。CUDA允许开发人员使用C、C++、Python等编程语言在GPU上编写并行程序,从而加速各种计算密集型任务。
CUDA的主要作用包括:并行计算、加速计算、深度学习、科学计算。
cuDNN
cuDNN 是基于 CUDA 的深度学习 GPU 加速库,有了它才能在GPU上完成深度学习的计算。
如果把 CUDA 看作是一个配有很多像锤子、螺丝刀这样工具的工作台的话,cuDNN 就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,这样才能使GPU进行深度神经网络的工作。
pytorch
PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究团队开发和维护。PyTorch提供了灵活的张量计算和动态计算图的功能,使得深度学习模型的设计、训练和部署变得更加简单和高效。
PyTorch的主要特点和用途包括:动态计算图、易于使用、动态神经网络、强大的计算能力。
GPU、Cuda Driver和 Cuda Toolkit的图解关系
- Nvidia Driver驱动:操作系统和硬件GPU进行沟通交互的程序,没这个驱动,GPU就是一个摆设,调用不起来,所以得先装这个。装了这个电脑就能用GPU了,但是深度学习搞不定。
- CUDA Toolkit工具包:是基于驱动程序,用来实现GPU并行计算和加速深度学习的软件包。通过这个软件包,调用驱动,实现更加高级的功能。
- cudnn深度学习加速库:是专门针对深度学习的GPU加速库,如果你要使用深度学习框架,这个是必需的。虽然也是CUDA Toolkit的组件,但是官方的下载包里面并没有,需要自己额外下载。
- pytorch,tensorflow深度学习框架:CUDA Toolkit并没有提供深度学习的框架,只是提供了如何高效调用GPU的软件库。如果你要创建深度学习模型,进行训练。还是要使用深度学习框架。
- Nvidia官方下载的CUDA:官方下载的CUDA Toolkit是包含了驱动的,并且联合到一块是称为CUDA的。
- conda下载的CUDA:是不包含驱动的,但是高版本的驱动,是向前兼容的,你可以下载相匹配的cuda toolkit,构成不同版本的cuda。
参考:
还是搞不懂Anaconda是什么?读这一篇文章就够了:https://blog.csdn.net/weixin_56197703/article/details/124630222;
anaconda、虚拟环境、cuda、pytorch、pycharm之间的关系,以及配置时出现的问题:https://blog.csdn.net/qq_53092944/article/details/136563738;
一文搞懂深度学习所有工具------Anaconda、CUDA、cuDNN:https://blog.csdn.net/everyxing1007/article/details/123703059;
一张图了解GPU、CUDA、CUDA toolkit和pytorch的关系:https://blog.csdn.net/Blackoutdragon/article/details/130233562;