● 摘要
信息化进程的加速,使得数据中心和高性能计算的规模也与日俱增。伴随着性能的快速提升,愈来愈庞大的系统能耗却逐渐成为了影响其发展的制约因素。全球数据中心的总能耗正以每五年为单位成倍增长,而高性能计算进入到petaflop时代后,一台超级计算机的能耗几乎赶上一座中小型城市。同时,GPU,得益于其强大的并行计算能力,弥补了CPU计算力日趋不足的现状,CPU+GPU混合架构因此应运而生,并且逐渐主导数据中心和高性能计算领域。然而,正是带给GPU超高计算能力的多核架构,使得GPU的功耗居高不下,成为了影响其继续发展的重大阻碍。因此,GPU能耗问题备受领域内专家和学者们的关注。
本文的研究目标为建立面向CUDA程序的GPU能耗预测模型,提供CUDA编程人员预测CUDA程序能耗的能力,并且在此模型基础上,开发以能耗为目标的代码辅助工具,用以帮助CUDA编程人员从能耗的角度编写CUDA程序。
本文首先提出了一种指令级的GPU能耗模型。不同于以往那些需要依赖硬件性能计数器或是体系结构模拟器的能耗模型,该模型仅仅需要提供组成程序的PTX指令信息作为输入,便能够预测程序能耗。具体来说,本文选择了对GPU能耗贡献度高的PTX指令作为模型的自变量,依据多元线性回归经验公式来建立这样一种指令级的能耗模型。通过使用人工编写的测试程序和被业界广泛认知的测试程序——Rodinia测试程序集和CUDA SDK测试程序集——来验证模型,5.76%、3.699%和5.526%的平均误差率的结果表明,本文的模型不仅能够提供能耗预测能力,而且也具有相当高的准确性。
本文在上述GPU能耗模型基础上,还设计和开发了一个面向CUDA编程框架的代码编写辅助工具。该辅助工具是将用户在前端选取的代码发送给位于后端的能耗预测分析程序,后端得到代码后,通过分析指令和带入能耗模型计算获取代码的能耗预测值,再将此预测值发送回前端显示,为CUDA编程人员提供了一个能在编程时便实时分析程序能耗的开发辅助工具。在本文GPU能耗模型和代码辅助工具的帮助下,CUDA编程人员能够更加深入地了解自己所编写的程序的能耗情况,这样也从另一方面促进CUDA编程人员编写出更加高能效的程序。最后通过软件测试,验证了该工具的有效性。
相关内容
相关标签