# cudatoolkit介绍及配置
# 1.GPU与CUDA、cudatoolkit、cuDNN之间的关系
# 1.1 GPU
GPU是图形处理器(Graphics Processing Unit)的缩写,是一种专门在计算机上执行绘图运算工作的微处理器。图形处理器使显卡减少对中央处理器(CPU)的依赖,GPU为大规模的并行运算而优化,因此有着比为串行指令而优化的CPU快的多的运算速度1 (opens new window)。常用的GPU品牌厂商有NVIDIA,INTEL,AMD等。
确定显卡型号后,可在Nvidia官网上下载对应的GPU驱动,驱动下载地址 (opens new window)。
# 1.2 CUDA
CUDA英文全称是Compute Unified Device Architecture
,是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。按照官方的说法是,CUDA是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅。
# 1.3 CUDA Toolkit
CUDA toolkit即是实现CUDA并行计算平台和编程模型的工具箱,包含了一系列套件。包括GPU加速库,程序调试和优化工具,在主流x86\ARM\POWER
平台上构建和部署应用的运行时库。cudatoolkit
可以从NVIDIA
官网下载,也可在通过虚拟环境管理工具conda\pip
下载。通过NVIDIA
官网下载的CUDA toolkit
中包含有如GDB,NVCC
及显卡驱动等工具。通过pip
安装的cudatoolkit
通常仅包括必要的库文件,完整的CUDA Toolkit
中包含的模块及CUDA Toolkit与显卡驱动的版本对应关系可见2 (opens new window)。
https://zhuanlan.zhihu.com/p/91334380
nvcc
命令是NVIDIA CUDA Compiler
,就是CUDA
的编译器,可以从CUDA Toolkit
的/bin
目录中获取,类似于gcc
就是c
语言的编译器nvidia-smi
是NVIDIA System Management Interface
是NVIDIA Management Library(NVML)
构建的命令行实用工具,包含在显卡驱动(NVIDIA display driver
)中,nvcc
与nvidia-smi
输出的CUDA
版本不一致,CUDA
有两个主要的API:runtime(运行时) API
和driver API
。这两个API都有对应的CUDA版本(如9.2和10.0等)。用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。runtime
与driver API
的区别,runtime
是更高级的封装,开发人员用起来更方便,而driver API
更接近底层,速度可能会更快
# 1.4 cuDNN
https://blog.csdn.net/qq_42406643/article/details/109545766
cuDNN
的全称为NVIDIA CUDA® Deep Neural Network library
,是NVIDIA
专门针对深度神经网络中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
CUDA这个平台一开始并没有安装cuDNN库,当开发者们需要用到深度学习GPU加速时才安装cuDNN库,工作速度相较CPU快很多。
查看cuDNN版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
# 2.Linux下安装GPU Driver/CUDA Toolkit/cuDNN
-
sudo add-apt-repository ppa:graphics-drivers/ppa ubuntu-drivers devices sudo apt-get install nvidia-driver-*
或者使用
ubuntu
发行版推荐的驱动# sudo sh NVIDIA-Linux-x86_64-440.44.run -no-x-check -no-nouveau-check -no-opengl- files sudo apt ubuntu-drivers autoinstall
安装cudatoolkit,在官网 (opens new window)下载对应的cudatoolkit,与驱动版本需对应,版本对应关系见 (opens new window)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export PATH=$PATH:/usr/local/cuda/bin
安装成功后,输出为:
nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Aug_15_21:14:11_PDT_2021 Cuda compilation tools, release 11.4, V11.4.120 Build cuda_11.4.r11.4/compiler.30300941_0 2.2
安装cuDNN,下载文件 (opens new window),执行如下命令。
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*