0x00 前言
从事深度学习领域一年,复现和自己实现过几个深度学习项目,对深度学习项目的环境有很大的感触。它确实可以称得上是入门深度学习的第一道门槛。但是现在回头看看,其实深度学习对于环境的需求,也无非就一个:
用GPU加速程序
那么我们服务器中有了GPU,怎么搭建一个深度学习环境呢?接下来的几篇,我将手把手教你搭建深度学习环境~
0x01 GPU、Nvidia Driver 、CUDA和cuDNN 的关系
从实际问题讲解四者的关系
-
一个深度学习项目,涉及到的运算特别特别的多。如果单纯的用
CPU
跑,一个中等的程序,可能得跑个半个多月甚至更长。这时,GPU
就派上用场了。顾名思义,其实GPU
相当于一个比CPU聪明百倍的“人”。 -
但是
GPU
是一个硬件,我们不可能在一个高级语言写的程序里去直接调用一个硬件吧。这时候,驱动就要派上用场了,因为我用的是Nvidia
的GPU
,所以需要使用的就是NVIdia Driver
。 -
有了
Nvidia Driver
, 就可以去调用GPU
了,但是怎么去并行调用,怎么去分配GPU
资源对程序员来说又是一个难缠的问题。这时,CUDA
,通用的并行计算架构就应运而生了。它基于GPU
和Nvidia Driver
,是使用GPU
变得轻松且优雅。当然,后面针对特定需求,也在特定的方面进行了加强,比如cuDNN
,它是基于CUDA
的深度学习GPU
加速库,有了它才能在GPU
上完成深度学习的计算总结一下就是说,如果要运行一个CUDA程序,该系统需要满足以下四个条件:
- GPU
- Nvider Driver
- CUDA
- cuDNN
四者之间的版本约束问题
-
GPU 和 Nvidia Driver 的关系
该网站中,填写相应的GPU信息,就可以获得其满足的所有Nvidia Driver 版本
-
Nvidia Driver 和 CUDA 的关系
两者的兼容性问题(官网详解,下面是我自己的提炼总结)
-
10.0之前:向后兼容
-
10.0之后:向前兼容和向后兼容
向前兼容对应情况如下, 参考自官网
向后兼容对应情况如下:
注:30 系列显卡是新一代架构,新驱动不支持 cuda 9 以及 cuda 10,所以必须安装 cuda 11
-
-
CUDA和cuDNN的关系
这个比较简单,下载cuDNN时都会跟随对应的CUDA版本,后面会详细介绍
0x02 一些闲话
本人创建了一个公众号,分享科研路上的小问题,新发现,欢迎关注公众号,给我留言!!!
一起奋发向上,攻克难题吧~~