详解Nvidia CUDA和cuDNN以及显卡版本号对应关系
一直没有详细的看Nvidia关于CUDA的官方文档,做深度学习的可以稍微了解一下,做个记录。
先给出显卡版本和CUDA版本对应关系:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
1. 什么是CUDA?
CUDA(ComputeUnified Device Architecture计算统一设备架构),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
2. 什么是cuDNN?
NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
3. CUDA和cuDNN关系
我们将CUDA看作Nvidia官方提供的一个工具包,里面包含各种各样的工具,但是希望为深度学习加速还不够,cuDNN会帮助我们使用CUDA中的工具来针对深度学习的算法加速,cuDNN就是基于CUDA的深度学习GPU加速库。并且cuDNN的安装十分简单,只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,没有重叠的文件,复制不会对CUDA造成其他影响。
4. CUDA工具包的主要部件
Compiler编译器:包含CUDA-C和CUDA-C++编译器,nvcc可以在/bin中找到
Tools工具类:以下开发工具可在/bin中找到(除了作为Microsoft Visual Studio插件安装的Nsight Visual Studio Edition(VSE)之外,Nsight Compute和Nsight Systems在单独的目录中可用)。
- IDEs: nsight (Linux, Mac), Nsight VSE (Windows)
- Debuggers: cuda-memcheck, cuda-gdb (Linux), Nsight VSE (Windows)
- Profilers: Nsight Systems, Nsight Compute, nvprof, nvvp, Nsight VSE (Windows)
- Utilities: cuobjdump, nvdisasm
Libraries库:以下列出的科学和实用程序库在/lib(Windows上的位于/bin),接口在/include中。
- cublas (BLAS)
- cublas_device (BLAS Kernel Interface)
- cuda_occupancy (Kernel Occupancy Calculation [header file implementation])
- cudadevrt (CUDA Device Runtime)
- cudart (CUDA Runtime)
- cufft (Fast Fourier Transform [FFT])
- cupti (CUDA Profiling Tools Interface)
- curand (Random Number Generation)
- cusolver (Dense and Sparse Direct Linear Solvers and Eigen Solvers)
- cusparse (Sparse Matrix)
- libcu++ (CUDA Standard C++ Library)
- nvJPEG (JPEG encoding/decoding)
- npp (NVIDIA Performance Primitives [image and signal processing])
- nvblas ("Drop-in" BLAS)
- nvcuvid (CUDA Video Decoder [Windows, Linux])
- nvgraph (CUDA nvGRAPH [accelerated graph analytics])
- nvml (NVIDIA Management Library)
- nvrtc (CUDA Runtime Compilation)
- nvtx (NVIDIA Tools Extension)
- thrust (Parallel Algorithm Library [header file implementation])
CUDA Samples样例库:包含了一些基本可运行的样例,可用来测试CUDA是否安装成功。