一、定义
1.1、什么是CUDA
CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
1.2、什么是CUDNN
NVIDIA CUDNN是用于深度神经网络的GPU加速库。
1.3、什么是CUDA Toolkit
CUDA Toolkit由以下组件组成:
Compiler:编译器,包含nvcc
Tools:工具
Libraries:科学库、程序库
CUDA Samples: 演示代码
CUDA Driver:驱动
1.4、什么是nvcc
Nvcc是cuda的编译器,类似于gcc是c语言的编译器
显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - marsggbo - 博客园
nvcc -V 可查看cuda版本
二、查看版本
2.1 查看显卡驱动
nvidia-smi
Driver Version: 410.104 CUDA Version: 10.0 表明显卡驱动版本为410.104,支持的cuda最高版本为10.0。注意这里显示的是支持的最高版本,不是实际版本
2.2查看cuda版本
方法一: nvcc -V 或 nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
方法二:cat /usr/local/cuda/version.txt
CUDA Version 10.0.130
2.3查看cuda安装位置
which nvcc
whereis nvcc
存在cuda装了nvcc没有的情况
2.4查看CUDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
以上输出代表cuDNN版本为7500,或视为7.5.0
2.5基于python查看pytorch、cuda、cudnn版本(我的最爱)
import torch
print(torch.__version__) # 1.1.0
print(torch.version.cuda) # 10.0.130
print(torch.backends.cudnn.version()) # 7501
三、限制关系
3.1 概览
显卡驱动——cuda——cudann——pytorch——numpy——torchvision
410.104——10.0.130——7.5.0——1.1.0——1.19.5
440.118.02 ——10.2——8.0.2——1.6.0——XXX——0.7.0
查看版本关系
下个链接可查看最新版本的限制关系,如py10等
GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision
TensorFlow、PyTorch各版本对应的CUDA、cuDNN关系_caiguanhong的博客-CSDN博客_pytorch和cudnn对应版本
nvidia 关于版本限制的描述
Release Notes :: CUDA Toolkit Documentation
3.2显卡驱动限制cuda
3.3cuda限制pytorch
四、下载及安装
4.1下载及安装显卡驱动
Tensorflow-gpu版本安装 - breezey - 博客园
Release Notes :: CUDA Toolkit Documentation
打开nvidia网站,基于所需cuda版本,下载对应显卡驱动
我的服务器是tesla p100,下载次新cuda版本11.2
我下载的驱动版本是460.91.03
点击“Skip & Continue to Download”
显卡驱动安装指令
cd /wls/share/setup
./NVIDIA-Linux-x86_64-440.118.02.run
安装时选择覆盖Install and overwrite existing files
如需要赋执行权限,chmod 750 NVIDIA-Linux-x86_64-440.118.02.run
备注:cuda11.2匹配的NVIDIA-Linux-x86_64-460.91.03.run 和我的服务器不太匹配,最后安装的是cuda10.2匹配的NVIDIA-Linux-x86_64-440.118.02.run
提示
centos An NVIDIA kernel module ‘nvidia-uvm’ appears to already be loaded in your kernel.
解决方法
lsof | grep nvidia.uvm 查看占用的程序
kill -9 PID号 停止对应的程序
更新驱动后,docker报错“docker: Error response from daemon: OCI runtime create failed: container_linux.go:348:”
此时重启docker可解决‘service docker restart’
4.2 下载及安装CUDA
目前遇到了3种安装cuda的方法,分别为
1、driver API 安装显卡驱动时,安装了cuda 的driver API ,也就是nvidia-smi时显示的cuda版本
2、runtime API 独立安装cuda,即通常安装在路径/usr/local下,用软链接管理的多个cuda版本
CUDA Toolkit 11.5 Update 1 Downloads | NVIDIA Developer
cuda10.2的下载地址是http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
3、安装pytorch时自带cuda、cudnn
pytorch自带cuda和cudnn,只需支持高于这个cuda版本的显卡驱动即可。这种安装下cuda只给pytorch用。pytorch在编译的时候已经把cuda的库静态链接到了自己的库里,用conda或者pip安装的包已经打包好这些了。
这种安装下import pytorch输出的cuda版本和nvcc -V的版本会存在不同
【精选】Pytorch-gpu版安装教程【注意:无需提前安装cuda和cudnn】_升级显卡驱动需不需要升级cuda、pytorch-CSDN博客
为什么电脑装了pytorch没有安装cuda,还是能够使用gpu? - 知乎
4.3下载及安装CUDNN
建议利用已有容器,不必从头搭建环境
4.4下载及安装TORCHVISION
我的环境情况如下,linux配置是py10+torch1.12.1+cuda10.2+cudnn7605,缺少totchvision,下面链接1里没有1.12.1只有1.12.0,从链接2下载whl文件,最后下载的是cu102/torchvision-0.13.1%2Bcu102-cp310-cp310-linux_x86_64.whl
其中%2B编码是+的意思,然后再pip install xxx.whl
https://github.com/pytorch/vision#installation
https://download.pytorch.org/whl/torch_stable.html
>>> import torch
>>> print(torch.__version__)
1.12.1+cu102
>>> print(torch.version.cuda)
10.2
>>> print(torch.backends.cudnn.version())
7605