什么是CUDA

2020-05-12 宋洋葱 宋洋葱

CPU:中央处理器,主要为串行指令而优化(大白话:相应速度快)。 GPU:图形处理器,大规模的并行运算而优化(大白话:能同时处理大规模数据计算)。GPU显示芯片、显卡等。一般有集成(嵌在主板上)和非集成(可插拔)两种。后者自然需要一套软件来让CPU操作GPU。这个软件程序自然就叫显卡驱动。软件需要编译,自然跟操作系统有一腿,因此即使同样型号的显卡在不同操作系统一般需要的驱动也不一样。

那CUDA又是什么?

话说在2007年之前,GPU由CPU操作,CPU把一些图形图像的计算任务交给GPU执行。程序员不需要与GPU打交道。随着GPU计算能力的发展,越来越多的计算场景由GPU完成效果会更好。但现有的程序无法直接自由控制GPU的处理器。当然程序员也可以直接写代码控制与驱动对接,从而直接控制GPU的处理器,但这样代码恐怕写起来要疯掉。

GPU由英伟达最初推出,自然也是它一家独大,想要把自家产品的性能发挥到最高,它们当然会有动力提供一套软件接口来简化操作GPU的处理器,这一套软件也就是CUDA(Compute Unified Device Architecture,统一计算架构),大白话就是英伟达开发的一套软件,方便程序员直接操控自家的显示芯片。

(注:本人18线小码农一枚,擅长一本正经的胡说八道,以上内容不保证正确)