ubuntu深度学习环境配置(显卡驱动 /CUDA /CUDA ToolKit /nvcc /conda /pytorch /cuDNN /cudatoolkit)
(2025年6月3日更新)
一. 需求:
我们在复现深度学习网络的过程中,必然需要按照要求配置环境,例如下图所示。

上图说了四点:
- liunx版本支持16.04和18.04 。
- python版本支持python3.6以上。
- pytorch版本支持1.1以上。
- CUDA版本支持9.0以上。
二. 环境配置流程总结
对于驱动+CUDA Toolkit+cuDNN+pytorch+cudatoolkit这套环境的配置流程,现总结如下:
-
查看CUDA的维基百科,确定与
显卡型号适配的CUDA版本,并选择其中一个。(这里主要是可查看与显卡适配的CUDA版本区间) -
查看CUDA官方文档,确定与
CUDA版本适配的驱动版本,并选择其中一个 。(驱动支持的CUDA版本向后兼容,选择一个新的驱动不会有什么影响。) -
下载驱动并安装
-
下载CUDA Toolkit并安装,配置软链接、~/.bashrc,详见正文(Windows用户可参考这篇博客配置环境变量)(安装CUDA ToolKit的过程中也可以选择安装显卡驱动但是驱动版本单一,这里选择不安装。)
(linux卸载NVIDIA CUDA toolkit和 Driver驱动) -
创建conda开发环境(根据CUDA和torch版本选择对应的python版本)
-
在cuDNN下载页面选择CUDA版本支持的cuDNN版本下载并安装
-
根据pytorch官网的指示安装pytorch+cudatoolkit,需注意cudatoolkit与CUDA Toolkit一样要选择与显卡型号和驱动版本适配的版本,pytorch版本则按需选择
三. 重要概念
-
版本的确定流程为:
显卡型号>>CUDA版本>>驱动版本&cuDNN版本 -
CUDA是一个并行计算平台和编程模型,简单来说,它使得你能够用NVIDIA GPU进行通用计算。使用CUDA前,显卡一定要安装好驱动(事实上,没装驱动的显卡什么都干不了)。
-
CUDA有两种API,分别是:随
驱动安装的driver API(nvidia-smi显示的CUDA版本就是driver API的版本);随CUDA Toolkit安装的runtime API(可以用nvcc -V查看runtime API的版本)。两者版本不需要一致。 driver API的CUDA不能完成runtime API的CUDA的工作,所以仅安装驱动而不安装CUDA Toolkit或cudatoolkit是没法在开发中使用CUDA的。 -
CUDA Toolkit由NVIDIA官方发行,不仅包含了CUDA的runtime API,还包含了CUDA代码的编译器nvcc(CUDA也有自己的语言,代码需要编译才能执行)和debug工具等。 -
cudatoolkit为pytorch提供的、编译好的、用以支持pytorch运行的CUDA部件(动态链接库DLL等),在运行pytorch时,调用的CUDA都是cudatoolkit;仅当需要编译依赖CUDA的torch拓展模块时,会调用CUDA Toolkit(可以参考这个帖子)。 -
综上述3、4条,
cudatoolkit与CUDA Toolkit没有关系,版本也不需要一致。且在使用pytorch时,如果不需要编译CUDA代码,则不会调用CUDA Toolkit,也不需要安装CUDA Toolkit;仅在pytorch中使用CUDA的话,cudatoolkit就足够了。 经测试,仅安装pytorch+cudatoolkit,而没有安装CUDA Toolkit时,也是可以在pytorch中使用CUDA的。 -
无论是
CUDA Toolkit还是cudatoolkit,在安装时都必须选择与显卡型号和驱动版本适配的版本。 -
cuDNN(CUDA 深度神经网络库)是经GPU加速的深度神经网络基元库,可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。可以简单地将
cuDNN理解为CUDA的拓展和加速模块。CUDA Toolkit的cuDNN需要专门安装;而cudatoolkit中包含了cuDNN的相关部件。CUDA Toolkit的cuDNN和cudatoolkit`的cuDNN在功能上完全一致。
四. 目标环境确定
根据自己主机的软件硬件配置,结合上面第一章:需求中的期望环境,确定最终我们要配置的环境。
博主主机配置
| 设备 | 配置 |
|---|---|
| CPU | i7-12700KF |
| GPU | GTX3060 |
| 系统版本 | Ubuntu20.04 |
期望环境

环境的讨论与确定
- 本人的主机系统是Ubuntu20.04,但是上图Requirements中之提到了16.04和18.04,本人不想重装系统,所以就认为should be able to work on 20.04,后面的结果证明20.04是完全的。
- 版本的确定流程为:
显卡型号>>CUDA版本>>驱动版本>>CUDA ToolKit版本&cuDNN版本&nvcc>> >>conda的python版本>>torch版本>>cudatoolkit版本>>cuDNN版本,下面我们按照这个顺序,确定各模块版本。- 通过显卡型号确定
CUDA的版本号区间
Setp1: 显卡型号为GTX 3060
Setp2: 查看CUDA的维基百科,找到名为Compute capability, GPU semiconductors and Nvidia GPU board products的表,在表中找到显卡对应的Compute capability(version),如下图所示,GTX3060对应的Compute capability(version) 是8.6。

Step3:查看CUDA的维基百科,找到名为Compute capability (CUDA SDK support vs. microarchitecture) 的表,在表中找到显卡Compute capability(version) =8.6对应的CUDA SDK version(s),如下图所示,GTX3060对应的CUDA SDK version(s) 是11.1-12.9 ,因此CUDA的版本号区间为11.1-12.9。如下图所示。

上图中8.6的框,框出的绿色部分对应的CUDA SDK version(s)均可,因为CUDA SDK version(s)可以向下兼容。 - 根据
CUDA版本号区间选择显卡驱动:CUDA官方文档显示了显卡驱动版本和CUDA版本之间的关系,截图如下图所示。显卡驱动版本需要>=450.80.02,才能支持CUDA 11.1以上的版本。这里主要是不能让驱动版本过低。

由于显卡驱动是向后兼容的,因此我们在显卡驱动选择界面,选择一个最新的显卡驱动进行安装即可。安装完成后,如下图所示。

- 通过显卡型号确定
conda入门
- 我们使用conda环境搭建,搭建方法请查看下面这篇文章。
在linux系统中安装Anaconda,并使用conda - 使用conda的好处

- conda的相关介绍请查看conda文档,文档可以不看,但是请注意在conda环境中安装各种包时
请使用conda命令而不是pip (conda官方:使用 pip 安装包会修改您的 conda 环境,但 conda 并不知道这些修改。因此,当 conda 稍后尝试修改环境时,conda 跟踪的包和未跟踪的 pip 包之间很可能出现依赖冲突,这可能会导致环境损坏。)
conda使用
更多推荐
所有评论(0)