pytorch本质上只是一个深度学习框架,帮我们封装好了数据加载、损失函数、优化器、网络等信息,但是它调用GPU进行加速还需要cuda驱动,这里也经常遇到一个名字叫cudnn,而显卡驱动与cuda以及cudnn也不是一个东西,下面是大致的介绍:
NVIDIA(英伟达)显卡驱动
NVIDIA英伟达显卡驱动是为我们提供显示功能的,我们点亮屏幕,让游戏画面能够很流畅需要它,它和我们其他几个名词没有关系,因为剩下的几个名词都是我们进行更高级的GPU功能准备的。
Cuda
Cuda驱动可以在官网下载,它是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用,而我们需要进行的深度学习跑神经网络的时候需要使用使用。
cuDNN
cuDNN是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有完全一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般是有大致对应关系的。(具体见官网链接)
pytorch(torch)框架
pytorch是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了,他分为CPU和GPU版本,其他框架还有TensorFlow,Caffe等。
那么这几个概念就很清晰了,显卡驱动复杂给我们进行屏幕显示、游戏的画质渲染,而我们在调用pytorch的时候实际上是调用cuDNN这个加速包,这个包调用cuda驱动这个并行加速框架来调用GPU的流处理器进行计算的。