前言

做为深度学习从业者,最基本的要求是要会配置PyTorch的开发环境。我们在配置环境的时候都知道有显卡驱动、CUDA、cuDNN、CUDA Toolkit、PyTorch等组件,而且不同的组件还有不同的版本,搞得人十分头大,彻底明白这些东西如何选择和配置对我们来说是十分有必要的,下面我给大家介绍一下这些组件的定义与相互关联。

显卡驱动(GPU Driver)

显卡驱动是连接操作系统和GPU硬件的软件程序。它负责管理GPU的基本功能,包括内存管理、任务调度和与操作系统的通信。

显卡驱动的作用:显卡驱动是深度学习框架和CUDA Toolkit与GPU之间的桥梁。它必须与特定GPU硬件兼容,以确保GPU能够正常工作并与操作系统和应用程序通信。

CUDA(Compute Unified Device Architecture)

CUDA 是 NVIDIA 开发的并行计算平台和编程模型,旨在加速通用计算任务。它允许开发者使用GPU进行高性能的数值计算,包括深度学习训练和推理。

CUDA的作用:CUDA 提供了编程框架和GPU编程模型,使开发者能够有效地利用GPU的并行计算能力,从而加速计算任务。

CUDA Toolkit

CUDA Toolkit是一套软件工具集,包括了用于GPU开发的编译器、库、调试器和其他实用工具。它是使用CUDA进行开发的必备工具。

CUDA Toolkit的作用:CUDA Toolkit 提供了编译CUDA代码的工具、CUDA运行时库和各种GPU加速的数学库,使开发者能够方便地构建和优化GPU加速应用程序。

cuDNN (CUDA Deep Neural Network Library)

cuDNN 是NVIDIA的深度学习库,专门用于加速深度神经网络的训练和推理。它包含了高度优化的深度学习操作实现,可用于各种深度学习框架。

cuDNN作用:cuDNN 提供了用于加速卷积神经网络(CNN)等深度学习操作的GPU实现,使深度学习框架能够在GPU上获得显著的性能提升。

PyTorch

PyTorch是一个深度学习框架,它提供了用于构建和训练神经网络的高级API。PyTorch支持GPU加速,可以利用CUDA来加速深度学习任务。

PyTorch作用:PyTorch允许开发者构建灵活的神经网络模型,并使用CUDA加速训练和推理过程。PyTorch的深度学习库可与cuDNN和CUDA Toolkit集成,以获得GPU性能提升。

CUDA、cuDNN和PyTorch的版本选择

CUDA Toolkit包含了编译CUDA代码所需的工具和CUDA运行时库。CUDA Toolkit还包括了一些用于GPU加速的数学库,这些库对深度学习非常有用。

cuDNN 是一个独立于CUDA Toolkit的库,但通常与CUDA一起使用。深度学习框架(如PyTorch)使用cuDNN来加速神经网络操作。

显卡驱动是连接操作系统、GPU硬件和CUDA/CUDA Toolkit之间的关键组件。它必须与GPU硬件兼容,并且需要与操作系统相匹配,以确保GPU能够正常工作。

PyTorch是一个深度学习框架,它可以与CUDA和cuDNN集成,从而允许开发者在GPU上进行深度学习任务的加速。

各个组件的版本选择

虽然现在大致组件我们都了解了,但是在实际配置环境的时候还会存在各个组件的版本对应关系搞得人迷迷糊糊。到底怎么选择组件版本,又从哪个开始选择呢?大家可以按照这个顺序来考虑:显卡驱动 → CUDA → CUDA Toolkit → cuDNN → Pytorch
即显卡驱动决定了CUDA版本,CUDA版本决定了CUDA Toolkit、cuDNN、Pytorch各自的版本

一般来讲,首先需要先确定CUDA版本,然后再按照优先级依次向后确定版本。那么如何选择一个CUDA版本呢,这里有一个原则,就是选择的CUDA版本不可以高于本机支持的最高CUDA版本。而本机支持的最高CUDA版本由显卡驱动决定,查看方式为win + R 输入cmd进入命令行窗口输入nvidia-smi即可。