多核CPU上稠密线性代数函数优化及自动代码生成研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:sdwwaiwwsd
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
受功耗制约,仅通过提高单处理器核的频率的方式,已经无法继续提高处理器的计算性能。因此,增加芯片上的处理器核数来持续提升处理器计算性能的方式,已成当今主流的体系架构发展趋势。多核处理器的日益普及,以及众核平台的崭露头角,如Nvidia和AMD的GPU,AMD的APU,以及Intel的MIC,给高性能计算(HPC)带来了新的发展机遇和挑战。  基础线性代数子函数库(BLAS)是在高性能计算领域中被广泛使用的最基本最重要的数学库之一。许多大规模科学计算应用,如天体物理、流体动力学和石油勘探等,其核心计算问题都是求解偏微分方程(PDE),均依赖高度优化的BLAS库的性能来获得高效的运行效率。BLAS库中的矩阵相乘函数(GEMM)的性能,往往能够接近给定目标处理器的浮点计算峰值性能。该函数的优化严重依赖于处理器硬件架构的特征,从而很难直接被移植到一个新的处理器上而不引起性能损失。因此,往往需要领域专家花费大量的时间和精力来为矩阵乘法函数在新的处理器上进行细致入微的手工调优,有时甚至不得不为新的处理器重新设计和重新实现新的矩阵乘法函数。传统的手工优化软件包的开发方式,已无法跟上硬件架构的更新速度。近年来,自动代码生成及优化技术,已成为缩短软硬件开发周期差距的主要研究方向之一。针对上述问题,研究多核处理器上优化稠密线性代数函数优化,和自动代码生成技术具有重要意义。  本文主针对主流多核处理器,研究了稠密线性代数子程序的优化技术,自动代码生成的编译器框架构建,以及多线程应用程序中共享容器自动替换技术,详细介绍如下:  1.稠密线性代数核心函数的代码生成与优化框架。该工作提出了一种基于模板(template)的代码生成与优化技术,能够直接为稠密线性代数函数生成高度优化的汇编代码实现。生成的代码的性能超过了以Intel MKL等为代表的主流商业数学库的性能。  2.用户编程可控的特制化编译优化框架。该工作提出了一种协作优化技术,以消除不同优化操作之间不可预测的干涉影响,进而提高编译器优化的目标代码的运算性能。该工作优化的稠密线性代数函数的性能,比通用编译器icc优化的代码性能超出约20-200倍。  3.多线程应用程序中共享数据结构自动替换与优化编译框架。该工作提出了一个抽象容器适配接口,用以构建不同容器实现之间的等价关系,进而完成对多线程应用程序中低效的数据结构实施替换处理。该工作对PARSEC-2.1基准测试包中超过60%的应用有4%-50%的性能加速效果。
其他文献
随着城市数字化的发展,在现代化管理中,对优化城市的布局结构、城市基础设施、生态环境等城市地质调查工作提出了更高的要求。又因地质资料包含的信息量的巨大,借助地理信息系统
访问控制是信息安全的重要组成部分,在开放式信息系统中,访问控制是保证信息系统安全的一项重要措施;病毒、木马在互联网环境下对终端计算机系统造成的危害越来越严重。一个重要
电子表格是当前广泛使用的终端用户开发工具,并广泛应用于数据记录、金融、教育等多个领域。电子表格中的数据与公式都具有一定的计算语义,当电子表格中的数据或公式未能反映终
本文对单处理器下非周期实时任务调度进行研究。单处理器系统具有结构简单、开销低廉的特点,应用十分广泛。研究单处理器实时系统调度方法,不仅能够丰富实时系统理论,还对实时系
近年来,企业与企业之间的竞争已经逐渐转向供应链与供应链之间的竞争,而在供应链管理环境下,库存管理对于供应链的成本和服务水平都有着非常重要的影响,为了解决传统库存管理的弊
随着计算机、多媒体以及通讯技术的飞速发展,相当数量的文字信息正越来越多地以图像形式出现。图像中的文本是图像内容的一个重要来源,如果这些文本能自动地被检测、分割、识别
在信息技术飞速发展的今天,计算机已成为人们工作和生活不可或缺的重要工具。而计算机软件是计算机的应用核心,是用户利用和掌握计算机的有力武器,因此软件的质量不可避免会成为
数据挖掘是当今计算机应用技术和理论研究中最热门的领域之一。数据挖掘技术经过十多年的发展,已经逐渐建立起系统的挖掘理论和成熟的挖掘技术。形成了以关联规则挖掘、分类规
图像识别是计算机视觉和人工智能领域的重要问题,其终极目标是使计算机具有分析和理解图像内容的能力。图像识别是一个综合性的问题,涵盖图像匹配、图像分类、图像检索、人脸检
软件产品线工程理论是一种力求通过建立强大的软件重用机制,解决软件危机的一种工程模型。当今成熟的产品线工程理论是建立在构件化软件工程基础上,以构件的开发,组装,重用机制为