浅谈CUDA并行计算体系
2016-03-05叶毅嘉
叶毅嘉
摘要:近年来,图形处理器(Graphic Process Unit,GPU)的快速发展使得其逐步用于通用计算。在性能各异的并行计算平台中,英伟达(NVIDIA)公司推出的计算统一设备架构(compute Unified Device Architecture,CUDA)因为充分利用GPU(Graphic Processing Unit)强大的计算能力实现了通用并行计算而受到研究者们的青睐。
关键词:图形处理器;CUDA;并行处理
0 引言
CUDA(Compute Unified Device Architecture)模型是由英伟达(NVIDIA)公司推出的一种基于GPU通用计算的编程模型和计算体系。该架构不需要借助图像学API,直接使用类C语言即可完成并行计算,使得使用GPU处理图像中的复杂计算成为可能。
1 CUDA编程模型
CUDA将CPU串行处理和GPU并行处理完美的结合起来。一个完整的CUDA程序是由主机(CPU)程序和设备(GPU)程序共同组成,主机程序主要是为设备程序的运行做前期准备工作,主要包括数据初始化、数据拷贝、内核函数间数据交换等。而设备程序主要就是完成并行计算的任务。CUDA编程模型分为两个主要部分:CUDA软件架构和CUDA硬件架构。其中CUDA软件架构又包括了软件栈、通用编程模型和存储模型三个方面。下面将从上述内容对CUDA的编程模型进行介绍。
1.1 软件模型
根据NVIDIA的官方文档,CUDA的软件体系共分3个方面:CUDA设备驱动程序、CUDA运行时库和编程接口、CUDA官方函数库。其中,设备驱动器是直接作用于GPU上的,开发者可以通过CUDA运行时库和CUDA函数库中的函数调用来使用设备。CUDA编程模型可以根据不同的需求提供不同的API,开发者可根据对GPU的控制程度来使用。并且为了很好的利用CUDA架构,CUDA还提供了一系列的辅助开发、调试的工具。
1.2 硬件模型
软件程序的运行是建立在硬件的基础上的,而GPU之所以能够比CPU处理数据更加有效,在于GPU中有更多的晶体结构可用于计算。……
