PyTorch环境配置笔记
每次跑深度学习代码之前,配环境都是令人头疼的一件事,为了便于以后排查错误,将一些基本概念和常见问题整理了出来。
显卡
不是所有的GPU都支持CUDA,CUDA是NVIDIA推出的。一般用的都是NVIDIA的卡,所以应该不会碰到这个问题。
显存
显存之于GPU,就像内存之于CPU。
显卡驱动(特指NVIDIA Driver)
显卡驱动是连接显卡和计算机的桥梁,方便计算机识别GPU是否正确安装。NVIDIA Driver是NVIDIA显卡驱动软件,这个版本一般是和显卡型号相关的。
CUDA
CUDA的全称是Compute Unified Device Architecture(统一计算设备架构),属于一种并行计算平台和编程模型,能使GPU更简单地进行通用计算。运行CUDA应用程序要求系统至少有一个具有CUDA功能的GPU和与CUDA Toolkit兼容的驱动程序。
CUDA的安装路径一般在:/usr/local/cuda-xx.x/(xx.x为版本号)一个系统中可以安装多个CUDA版本,使用时修改软链接即可。
查看显卡支持的最高CUDA版本(驱动API):
nvidia-smi
CUDA多版本切换(有管理员权限):
1 | # 将~/.bashrc下与CUDA相关的路径都改为/usr/local/cuda,不添加版本号 |
查询GPU算力:官方算力表
GPU算力和CUDA版本对应关系:速查表
cuDNN
cuDNN是一个专为深度学习设计的软件库,里面提供了很多计算函数,如卷积。cuDNN与CUDA的关系好比是工具和工作台,安装了CUDA相当于只买来了一个平台,并没有提供专为深度神经网络加速的工具,因此还需要安装cuDNN。cuDNN是插入式设计,因此安装的时候只需要把cuDNN相关文件直接复制到CUDA路径中即可。
注:cuDNN和CUDA的版本存在一定对应关系,但是一般到了11以上的版本就不太会出现冲突了。详见官网
CUDA Toolkit
CUDA Toolkit主要包含了CUDA-C和CUDA-C++编译器、一些实用程序库、library API的代码示例和一些CUDA开发工具。一般安装CUDA Toolkit都是默认安装了CUDA Driver的,需要关注的是,CUDA Toolkit和在Anaconda中安装torch时自动安装的cudatoolkit有一定区别。CUDA Toolkit的功能更加完整,只有在进行其他CUDA相关程序的编译时才会用到,和项目的环境需求有关。安装PyTorch的时候,cudatoolkit包含了与CUDA相关的动态链接库,PyTorch本身与CUDA相关的部分是预编译好的,不需要重新执行编译过程。
注:CUDA Toolkit和CUDA Driver的版本存在一定对应关系。详见官网
NVCC
NVCC是CUDA的编译器,一般存放在CUDA Toolkit的/bin目录中,类似于C语言的gcc编译器。
查看当前CUDA版本(运行API):
nvcc -V
此命令无效时检查环境变量是否配好:
1 | # 配置环境变量 |
PyTorch和CUDA
使用conda查看版本
1 | conda list | grep cuda |
使用Python查看版本
1 | import torch |
关于Pytorch和CUDA的版本冲突
- 一定先去算力表查看GPU架构支持的CUDA版本。
- 找到PyTorch和CUDA的交集,选择版本最高的CUDA。