CPU-GPU协同方式对异构系统的整体性能有重大影响,以下描述三种CPU-GPU耦合模型。
-
热点加速模型
热点加速以CPU为调用者,GPU为被调用者,GPU仅仅用于协助CPU加速程序。热点加速主要基于一个经验定律:大部分应用程序80%的执行时间集中在20%的代码当中,即二八定律。热点加速的缺点是加速比受限于算法的热点占比。
-
全GPU加速模型
全GPU加速模型将所有求解步骤都放在GPU上,CPU空闲或者只进行一些轻量级的、辅助性的工作,如初始化、发起kernel、辅助通信、偶尔的数据IO等。全GPU加速的缺点是可求解问题的规模取决于GPU显存的大小,但GPU显存远小于CPU内存。
-
对等协同模型
在求解过程中,将CPU和GPU视为地位对等的处理器。该模型按照硬件能力将问题域划分为CPU子域和GPU子域,CPU和GPU将同时执行问题求解的所有计算步骤。对等协同模型需要为CPU端和GPU端开发维护两套代码,工作量比起全GPU加速又进一步增加。最终多核CPU和众核GPU的整体运行时间不是二者的累加,而是取两者中的较大值。