论文部分内容阅读
近年来,随着处理器技术的不断发展,采用众核处理器作为加速部件已成为高性能计算领域的重要技术趋势。目前主流众核产品有通用的图形处理单元(Graphics Processing Unit,GPU)和新近推出的集成众核(Many Integrated Core,MIC),这类高性能异构众核架构虽然能够提供更高的峰值计算性能,但由于其体系结构复杂、编程困难,给应用的开发、维护和移植带来了很大的挑战。而Open CL(Open Computing Language)、Open ACC等跨平台异构并行编程模型的出现,大大简化了应用移植的难度,此类模型的代码可以不经修改就能在CPU、GPU、MIC等各个平台上运行。但其获得的性能如何,是否通过适当调整就能充分利用相应平台的硬件资源,这成了高性能计算领域关注的问题。本文面向MIC集成众核平台,采用跨平台的Open CL并行编程模型,深入研究科学计算应用在众核架构上的性能影响因素,并针对相应的问题,提出了系统的优化方法。主要的工作包括:(1)通过深入测评分析MIC架构上Open CL科学计算应用的性能,找到了影响应用性能的主要因素及其具体影响方式,其中单一因素对性能的影响差异最大达7倍以上,更进一步发现了向量化和存储访问是制约应用性能最关键的因素。(2)针对向量化,提出了两种基于Open CL向量数据类型的显式向量化优化方法。进而将该方法应用于多个科学计算内核代码,表明显式向量化在提升计算性能的同时,可以通过改变数据访问模式提高带宽性能。采用向量数据类型后,应用的性能最高提升了近16倍。通过与编译器的隐式自动向量化进行对比,发现两者在性能上差异不大,但显式向量化方法更加灵活可控。(3)针对存储访问,通过测试分析表明在MIC上使用Open CL本地内存的性能取决于应用本身的特点,本地内存的使用可以看做一种软件优化技术。通过分析模板计算的计算访存比,提出了并行的时间空间混合分块算法,并利用Open CL模型将其应用于七点模板计算,性能相比只采用空间分块提高了1.5倍。