cuda软硬件结构

发布时间 2023-04-20 16:51:37作者: QuincyYi

 

我们简单分析一下,硬件角度,主要分为计算机硬件(简单来说就是电脑)和显卡硬件(也就是GPU),这里计算机硬件为host端,显卡硬件为GPU端。

接着,我们从图片中计算机硬件来进行分析。这里,我们统一采用Ubuntu系统(Ubuntu18.04或者Ubuntu20.04)都可以,这里我们不采用Windows系统,因为Windows系统运行深度学习模型有一定的限制。

此外,为了方便课程教学,我们统一选择使用Ubuntu系统。在Ubuntu系统上,我们选择安装Anaconda,一句话来解释Anaconda是啥----就是Python环境管理器;简单来说,我们做Python开发,都需要一个Python解释器(比如Python3.7)和一组依赖包(比如:Pytorch、PyQt、NumPy等等),而由于不同Python解释器和依赖包的版本问题,我们就使用Anaconda进行Python环境的隔离和封装,可以在一个系统下隔离出多套Python解释器+一组依赖包的组合,如上图所示。

下一步,我们可以看到,这些不同的Python环境都指向了cudnn的一个对象,这就是一个神经网络的加速计算库,可以理解就是开发特定应用提供的SDK,因为GPU不仅仅可以进行科学计算,还可以用来玩游戏、图形仿真等等,所以不同的方向有不同的加速库。

然后,cudnn调用cuda,cuda简单来说就是对gpu具体操作的封装,这样方便我们直接调用。最后,我们看到计算机和GPU之间是通过显卡驱动来连接的(这里是NVIDIA驱动)。上述的关系图只是概略图,大家了解组件之间的关系就行。