从NVIDIA官方网站上找的CUDA资料可以看出CUDA的实现流程如下图:
CUDA的实现流程
从图上我们可以看出CUDA在整个GPU计算中充当的就是翻译的角色,我们知道GPU的结构和CPU差别很大,GPU强调的是并行性重复性的计算工作,GPU因为结构和CPU不同,计算指令也不一样,而在GPU加速中,CUDA就是负责把CPU的计算指令翻译成GPU的计算指令,同时还负责显存和计算机系统内存中数据的交换操作.
我们可以形象的的把显卡也看成一台结构不一样的计算机,它以GPU为CPU,显存为内存,CUDA就负责把我们平常使用的CPU指令转换成这台显卡计算机所能接受的指令,并负责数据在这两台计算机之间的交换.而CUDA程序本身还是要靠CPU来执行的.