基于GPU的Vampire的主要算法的研究与实现文献综述
2020-04-29 15:17:03
1.1 课题国内外研究现状
1.1.1 CPU/GPU异构系统
GPU(Graphics Processing Units)最初是1999年由NVIDIA提出的不同于CPU硬件设计的专用于处理计算机图形学中的任务的硬件模块。GPU芯片上更多的资源(晶体管)用于计算,用于缓存和控制的部件仅占很少一部分,而CPU中大量的资源用于缓存和逻辑控制,只有少部分资源用于计算,如图1.1所示。随着半导体技术的不断发展,GPU中可集成的晶体管数目快速增加,GPU的峰值性能正在以超过摩尔定律(平均每半年增加一倍)的速度增加着,GPU也因此具有计算能力强大、高带宽、高性价比、低能耗比的优点。随着大量软件编程语言的出现,如Brook ,GPU的性能和可编程性的不断提高,除了专业图形应用外,GPU越来越多的被应用于大量的通用计算领域,具有这类特征的GPU称为GPGPU(General Purpose GPU)。
图1.1 CPU与GPU内部硬件资源分配
在如今,科学计算的永无止境的计算需求驱动着高性能计算机体系结构的变革,各种新型的体系结构不断地涌现,采用多核微处理器和定制加速协处理器相结合的异构混合体系结构将是今后高性能计算平台的主格局。其中,由于CPU与GPU性能特长和使用领域良好的互补性,基于CPU/GPU的异构计算体系结构具有光明的发展前景。
CPU/GPU异构系统主要有两种协同模式:同步调用模式和异步调用模式。同步调用模式即CPU调用GPU后,陷入忙等模式,直到GPU完成任务返回为止,如图1.2所示。异步调用模式即CPU调用GPU后,不用等待GPU执行完任务就立即返回,CPU可以接下来继续执行与调用的GPU无关的任务,如进行计算或调用另一GPU核函数等,从而使CPU也能进行并行工作。异步调用模式相比于同步调用模式下的CPU资源利用率更高,但也存在着CPU与GPU间的任务划分以及交互等问题更为复杂的技术难点,CPU的并行工作量将对CPU、GPU的利用率产生较大的影响,如图1.3所示。
图1.2 同步调用模式下CPU、GPU的忙闲切换
图1.3 异步调用模式下CPU的并行工作量对CPU、GPU的忙闲切换的影响
1.1.2 CUDA体系结构
CUDA全称是计算统一设备体系结构(Compute Unified Device Architecture),是由 NVIDIA 开发并在其产品上实现的通用并行编程平台和编程模型。传统的GPGPU编程,需要先熟悉图像编程并使用API,CUDA的出现使得开发人员能够容易地使用GPU进行通用计算。由于CUDA采用了类C语言进行开发,开发人员能够从熟悉的C语言比较平稳地从CPU过渡到GPU,而不必重新学习语法。