一、指令级并行编译的关键技术研究(论文文献综述)
王迪[1](2021)在《超算典型应用优化技术研究与实践》文中提出高性能计算已经成为继理论分析和科学实验之后的第三大科研方法和手段,它利用先进的计算能力去解决理论、实验无法或难以解决的复杂、大规模的科学问题,成为了高校科研创新不可缺少的重要支撑。尤其是近几年高性能计算与人工智能、大数据的融合,让高校各个学科的发展都需要更多的算力支撑。这些年国内高校的超算平台计算能力已经超过了千万亿次,很多计算资源都具有新一代Intel Cascade Lake可扩展处理器的强大算力,但是如何充分利用这些计算资源来加快科研的速度成为了使用者面临的巨大挑战。而一些系统级、编译级以及代码级的优化技术可以有效的帮助这些应用改善计算性能,提高计算效率,充分发挥算力作用。本文以某高校超算平台的几种典型应用为例,研究四种不同的优化技术以提高应用的计算效率,充分发挥平台计算资源的利用率。本论文首先对优化技术如硬件层面涉及到的流水线、超标量、SIMD,运行层面涉及到的并行参数调整、线程亲核性,编译器层面涉及到的编译时优化选项、并行编译、数学库优化,以及算法层面涉及到的数据并行与任务并行进行了详细介绍与分析,然后通过对某高校超算平台的实际应用案例如VASP、WRF、冷冻三维电镜重构应用和基于相对论Hartree-Fock理论的张量力提取应用分析它们的性能瓶颈所在,针对其性能瓶颈提出优化方案,最终通过实验验证优化方案的可行性。从本文的实验结果来看,在VASP应用中,默认的NPAR与NCORE参数经过优化后最大运行速度可以提高6.4倍;对基于数值预报模式WRF应用,通过GCC编译器优化后的WRF计算性能提升可以达到23.77%,但是用Intel编译器优化后的WRF计算速度相对于GCC编译器编译的WRF性能还可以提升;在三维冷冻电镜重构程序进行图像相似度算法中,实现了利用多核CPU的并行能力对图像相似度计算算法进行优化,利用基于共享内存的OpenMP多线程并行技术,分析并发掘了傅里叶空间中图像相似度计算算法的并行能力,对其计算过程实现了多个层次的并行优化,最优加速比达到了61.103;基于相对论Hartree-Fock理论的张量力提取应用中,针对其算法的可并行性,实现了采用OpenMP-MPI混合模型实现并行算法的优化,CPU利用率由原算法的不足1%提升到了94.8%,向量化比例提升到了100%,加速比达到了36.779。
巩令钦[2](2020)在《基于LLVM的申威处理器并行编译技术研究》文中研究表明随着高性能计算在科学研究和海量数据处理中广泛应用,对高性能计算软件环境的完善成为了人们关注的焦点。编译技术作为软件和硬件连接的桥梁,对高效的编译技术的研究越来越受到人们的重视。在申威处理器上进行LLVM编译器的编译技术研究对完善高性能软件环境具有重要意义。本文完成的主要工作如下:1.提出了锁机制编译策略,保证了多线程环境下原子操作的原子性,完善了申威处理器线程层的并行编译支持。在锁机制编译策略中,针对原子操作和申威处理器特性设计了52条伪指令;针对LLVM编译器特点,实现了原子操作语义映射流程;通过在锁机制算法中加入了对8位和16位数据类型的处理,完善了对申威处理器中小粒度数据类型的支持。2.基于有向无环图提出了不对齐数据的优化处理策略,在数据层挖掘了程序的并行潜力,完善了申威处理器数据层的并行编译支持。在不对齐数据的优化处理策略中,通过在有向无环图中进行节点的自定义降级处理完成了不对齐标量数据和不对齐向量数据的优化处理。本文对提出的编译支持策略进行了实验测试与分析。首先对锁机制进行功能验证和性能验证。实验结果显示,多线程环境下锁机制能够正确运行,C语言版NPB测试集程序平均加速比为8.08,最大加速比为13.32;Fortran语言版NPB测试集程序平均加速比为11.91,最大加速比为15.73。实验表明LLVM编译器加入锁机制编译策略后,通过使用Open MP库,在多线程环境下可以充分利用处理器的多核优势实现对程序性能的提升。其次,进行了不对齐数据优化处理策略的性能验证。不对齐数据进行十亿次存取时,不对齐向量数据优化后的最大加速比为14.01,平均加速比为13.61;不对齐标量数据优化后的最大加速比为20.27,平均加速比为14.49。实验表明在程序包含不对齐数据时,不对齐数据的优化处理策略能够实现程序性能的提升。
李盛[3](2020)在《分组密码专用描述语言及编译技术研究》文中提出可重构专用指令密码处理器具有面向密码运算的专用指令集和可重构专用运算单元,密码处理性能高、灵活性强,已成为密码算法的一种重要实现方式。但该类处理器指令集和体系结构复杂,代码编写和编译优化困难,影响了芯片应用,本文针对这一问题开展了研究,主要成果及创新点如下:1.提出了一种分组密码专用描述语言DSLBCA(Domain Specific Language for Block Cipher Algorithm)。针对通用编程语言难以直观描述分组密码算法的算子和结构的问题,采用领域专用语言建模的方法,从问题域和解答域的角度建立了分组密码算法加密过程特征模型、层次化特征模型和执行模型,定义了DSLBCA语言的数据类型、标识符、函数结构和程序控制结构,使密码应用者能够通过数学思维方式编写算法程序代码。2.设计了面向DSLBCA和可重构VLIW分组密码处理器RVBCP(Reconfigurable VLIW Block Cipher Processor)的编译基础设施。研究了RVBCP处理器指令集特点,结合分组密码专用描述语言的语言规则,提出了相应的编译基础设施,设计了词法分析器、语法分析器、语义分析器,实现了DSLBCA程序代码向RVBCP汇编指令集的符号编译。3.提出了面向可重构多引擎密码So C的反馈式编译器结构。研究了基于RVBCP的多引擎密码So C(System on Chip)的工作流程,提出了反馈式编译器结构,设计了基于平均代码行数的循环展开因子算法UFACLA(Unrolling Factor Based on Average Code Line Amount),在编译器前端实现了DSLBCA应用程序源代码在So C下的并行分配;并对展开后的代码进行标量替换,通过降低访存时间提高了分组密码算法的执行效率。4.提出了DSLBCA程序代码在RVBCP中的算子自动映射方案。建立分组密码算子调度参数模型,量化描述算子结点的调度状态信息;建立RVBCP的计算资源与寄存器资源参数模型,量化计算运行时计算资源与寄存器资源的消耗;基于贪婪策略、列表调度与线性扫描算法思想,设计了面向多发射可重构分组密码算法指令集处理器的并行资源分配算法,实现了分组密码算子在RVBCP上的自动并行映射。5.提出了RVBCP处理器低功耗指令调度方案。分析VLIW(Very Long Instruction Word)指令级功耗模型和RVBCP指令字内部指令排序与动态功耗变化的关系,对调整指令字之间汉明距离的方案进行了数学描述和讨论,将该低功耗指令调度问题归纳为广义旅行商问题,提出了一种基于禁忌搜索的改进广义遗传算法求解广义旅行商问题,实现了低功耗指令调度。
高伟,赵荣彩,韩林,庞建民,丁锐[4](2015)在《SIMD自动向量化编译优化概述》文中研究指明SIMD扩展部件是集成到通用处理器中的加速部件,旨在发掘多媒体程序和科学计算程序的数据级并行.首先介绍SIMD扩展部件的背景和研究现状,然后从发掘方法、数据布局、多平台向量化这3个角度介绍了SIMD自动向量化的研究问题、困难和最新研究成果,最后展望了SIMD编译优化未来的研究方向.
阳柳[5](2014)在《面向动态双模多层次并行体系结构的编译优化技术研究》文中认为无线通信与视频图像处理等应用领域的快速发展对数字信号处理器(DSP)的性能提出了较高的要求。DSP因具有数据处理能力强大、可编程性良好、使用灵活等特点被广泛使用。动态双模多层次并行DSP(Dynamic dual-mode multi-level parallel DSP,DDMP-DSP)是自主设计并实现的一款面向无线通信和视频图像处理的高性能浮点数字信号处理器。DDMP-DSP采用动态双模多层次并行体系结构,基于超长指令字(VLIW)技术支持指令级并行,基于宽字向量单指令流多数据流(SIMD)技术支持数据级并行,基于动态双模技术支持任务级并行。软件工具链对于新体系结构的实用性和性能发挥非常重要。在无线通信和视频图像处理应用中,随着算法复杂程度的提升,应用开发的工作量越来越大,采用手工代码优化的方式无法满足应用开发的需求。因此,开发过程中更多地采用高级语言编译优化的方式进行应用开发,这对高级语言编译器的设计和开发提出了更高要求。动态双模多层次并行体系结构的性能发挥很大程度上依赖于编译器,采用当前已有的DSP编译优化技术无法充分利用DDMP-DSP体系结构的特点并发挥其性能优势。论文针对DDMP-DSP体系结构的编译优化技术展开研究,针对指令级并行、数据级并行和任务级并行三种并行特征,采用建立执行模型、编程模型和代价模型的方式,从调度优化、数据重组以及循环优化等角度设计并实现了三种编译优化技术,有效支持DDMP-DSP体系结构和指令集特征。本文的主要研究成果和创新体现在以下几个方面:1.根据DDMP-DSP体系结构特点抽象出一种动态双模多层次并行执行模型(Dualmode multi-level parallel execution model,DDMPEM),提取出VLIW、宽字向量SIMD和动态双模三个主要执行特征,DDMPEM能够作为研究和开发编译优化技术的基础,指导编程模型和代价模型的实现。设计了一种Kernel Based编程模型(Kernel-based programming model,KBPM),程序员能够方便地利用KBPM进行应用开发,通过支持KBPM,编译器能够识别应用程序中的并行特征,更高效地进行编译优化。提出了一种多层次并行代价模型(Multi-level parallel cost model,MPCM),对指令级并行、数据级并行和任务级并行进行综合考虑,能够对编译优化进行指导。2.提出了一种支持任务级并行的动态双模优化调度技术(Dual-mode optimizing scheduling,DMCOS)。DDMP-DSP体系结构中执行并行任务的向量部件和执行串行任务的标量部件能够在紧耦合模式(Tightly coupled Mode,TCM)串行工作,也能在松耦合模式(Loosely coupled Mode,LCM)并行工作。采用DMCOS优化技术能够确定两种模式的切换时机并实现动态切换。DMCOS对使用KBPM编程模型开发的双模式区(Dual-mode code field,DMC)源代码进行独立任务双模调度(Independent dual-mode scheduling,IDS),或者根据动态双模切换代价模型(Dual-mode switching cost model,DDSCM)进行流调度(Flow scheduling,FS)和双模切换调度(Dual-mode switching scheduling,DSS)。DMCOS能够发掘应用程序中的任务级并行,并将高级语言应用程序转换为满足动态双模执行模型要求的代码。DMCOS能够更好地利用DDMP-DSP的动态双模体系结构特征,开发任务级并行。3.提出了一种支持数据级并行的宽字向量SIMD数据重组编译优化技术(Data reorganization for wide SIMD,DRWS)。DDMP-DSP体系结构中的向量部件包括一组同构的向量运算单元(VE),多个VE可组合支持宽字向量SIMD。DRWS主要包括三个模块:基于多模的数据重组(Data reorganization based on multimodulo,DRMM)模块,宽向量填充数据重组(Data reorganization for wide vector filling,DRWF)模块和分支数据重组(Data reorganization for branch,DRB)模块,这三个模块能够处理多种情况下的数据重组。DRWS能够支持灵活的数据重组,从而在SIMD向量化(SIMDization)时能够更好地匹配VE个数,提高DDMP-DSP中的SIMD计算资源利用率,开发数据级并行。4.提出了一种支持数据级并行和指令级并行的多层次循环优化编译技术(Multilevel loop optimization,MLOP)。MLOP有效地将多面体优化技术、SIMDization编译优化技术、面向VLIW的编译优化技术和运行时编译优化技术结合起来,包括多面体优化模块、子字与超字SIMD向量化模块(S-Ⅱ SIMDization)模块、面向VLIW的循环优化模块和运行时优化模块。使用类迭代编译的方法进行编译优化,综合多种因素,选择合适的循环展开因子并进行循环优化。MLOP能够充分利用DDMP-DSP多层次并行体系结构特点,挖掘程序中的数据级并行和指令级并行。
王庆[6](2013)在《面向嵌入式多核系统的并行程序优化技术研究》文中研究表明传统上嵌入式系统设计是以低功耗为首要目标,但是随着计算密集型的嵌入式应用不断扩展,对性能要求、功耗要求的不断提高,嵌入式系统最近已经转向高性能嵌入式计算。面对日益复杂的嵌入式应用,片上多核处理器(CMP)已成为高性能嵌入式计算的一个有效解决方案。CMP采用多个性能适中的处理核心提高能量效率,使用高的任务级并行或者线程级并行提高整个处理器的性能。在嵌入式领域,如何充分利用CMP带来的高性能和低功耗技术对并行程序在嵌入式多核平台上的应用提出了很大挑战。对于嵌入式多核系统来说,低功耗和高性能是其核心特征之一,因而,如果无法有效地利用片上多核处理器技术并对应用程序进行有效地的并行计算,势必会影响建立在其上的各种应用的性能,并且造成资源和能源的浪费,这对资源和能耗要求甚高的嵌入式领域来说,这种情况是不可忍受的。因此,针对嵌入式应用,设计和实现高性能低功耗的并行计算方法,是嵌入式多核系统能否取得广泛应用需解决的核心问题之一。鉴于上述原因,本文深入分析了当前高性能嵌入式计算采用的性能和功耗优化方法,重点围绕嵌入式多核平台的并行编译设计及并行程序优化等问题进行研究,本文的主要工作和技术创新概述如下:首先,提出了面向嵌入式多核系统平台的OpenMP并行编译方法,并在此基础上扩展OpenMP并行指导语句,实现了OpenMP并行优化。以嵌入式操作系统eCos为实例,基于共享式存储并行编程模型OpenMP为嵌入式多核平台设计并实现了一个源到源的并行编译器。提出了基于嵌入式多核层次存储结构的OpenMP并行循环优化算法,扩展了OpenMP循环的并行制导语句tiling,从而提高嵌入式多核平台上的并行编程效率和并行性能,最后通过实验验证了扩展语句在嵌入式多核平台上的有效性和应用性能。其次,提出了面向并行程序应用的嵌入式多核系统运行时动态优化方法。针对在受带宽、数据竞争及数据同步不当等因素影响的多线程并行程序中增加线程的数量会明显降低性能的问题,本文提出了一个基于并行程序结构的性能分析模型,该模型把程序的并行区划分为完全并行和临界区部分,使得在运行时能够动态分析出具有最佳性能时的线程数。为了减少因线程之间的负载不均衡造成的性能和能耗浪费,本文还提出了基于该运行时框架的动态调度方法,该方法针对并行循环动态选择调度方法,并根据线程负载状况调整调度块大小实现性能均衡。最后基于嵌入式多核平台对运行时动态优化框架进行了验证和评估,实验表明,该框架以及运行时优化方法能够很好的适用于嵌入式多核系统,为并行应用提升性能。第三,提出了面向并行线程负载的低功耗执行模型。为了避免并行应用程序在嵌入式多核平台上因负载不均衡造成的能耗浪费,本文首先对并行线程执行负载进行分析,结合动态电压频率调整(Dynamic Voltage and FrequencyScaling,DVFS)提出并实现了一个低功耗执行模型,然后,本文提出并实现了一个基于该模型的线程执行频率控制算法,使得运行时系统可以根据并行线程的负载不均衡性状况动态调节运行频率,在不影响并行程序运行性能的情况下,降低程序运行的能耗。最后基于模拟的嵌入式多核平台对模型进行验证。实验表明,本文设计的低功耗执行模型能够在2.2%的性能损失的情况下为嵌入式多核平台上的并行应用程序节省平均13%的能量消耗。第四,提出了基于能量效率的反馈式动态电压频率调整(DVFS)方法。根据并行应用的特点,该方法将将并行程序的性能和能量消耗综合考虑,采用能量效率的能量延迟积(Energy-Delay Product,EDP)衡量基准,通过反馈式的动态电压频率控制框架,在并行程序运行初期发现适合每个核心最佳的DVFS档位,在不影响程序性能的条件下,减少能耗提高能量效率。最后通过实验对反馈式DVFS进行了验证和评估。
刘晓娴[7](2013)在《面向共享存储结构的并行编译优化技术研究》文中研究表明在计算机体系结构的发展过程中,并行结构的出现与不断发展将高性能计算机系统的峰值速度一次又一次推向新的高峰。但与硬件的峰值性能相比,用户程序所能获得的持续性能相去甚远,其中一个主要原因是并行程序设计带来的挑战。程序的自动并行化是实现并行程序设计的一条有效途径,编译器通过对串行程序中蕴含并行性的分析与发掘,自动生成适合并行体系结构运行的并行程序。自动并行化编译技术对于继承现有的软件财富,促进高性能计算机的应用具有重要作用。共享存储结构在高性能计算机体系结构中占据着重要地位,面向共享存储结构的并行化编译技术经过几十年的发展,已较为成熟。但是,要实现共享存储平台上高效并行代码的自动生成,仍面临若干技术挑战,如:存在跨迭代依赖循环的有效并行;自动并行化过程中程序并行收益的精确评估;异构平台上多层次存储系统的有效使用。本文以并行编译器SW-VEC的研发为背景,探讨了面向共享存储结构的并行编译优化技术,主要贡献和创新包括:1、提出了一种基于OpenMP的规则DOACROSS循环流水并行代码自动生成和流水粒度优化算法,设计实现了计算划分层和循环分块层的启发式选择算法,有效提高了规则DOACROSS循环的自动并行性能。2、提出了一种基于OpenMP的PS-DSWP自动并行改进算法,以基本块而非指令作为构建程序依赖图的基本单位,增大了并行的粒度;使用OpenMP应用编程接口实现并行时线程之间的任务分配和数据共享,有效实现了PS-DSWP算法的应用扩展和目标代码的性能提升。3、建立了一种新型的OpenMP代价分析模型,采用模块化和层次化的策略,将模型分为循环执行模型和硬件模型两个层次,既能灵活地实现模型扩展,又便于移植和运用于不同的目标体系结构。4、提出了一种基于多面体模型和精确数组区域表示的数据传输优化方法,设计了一组实现异构平台上数据传输控制的OpenMP扩展子句,定义了分块规则数组区域及其合并操作实现数组区域的精确表示,提升了异构平台中多层次存储系统的使用效率。本文提出的算法和模型已在并行编译器SW-VEC中得到了实现和应用,验证了算法的正确性和高效性。
高飞,李红燕,张永福[8](2010)在《密码协处理器指令级并行编译研究》文中提出立足于处理器体系结构的研究,结合可重构设计技术以确保密码处理的灵活性是密码协处理器研究的重要方法,其中如何提升密码协处理器的性能是至关重要的问题。基于VLIW体系结构以及可重构设计技术,设计专用指令密码协处理器。编译器作为密码协处理器的重要组成部分,重点研究了密码协处理器指令级并行编译技术,通过提高指令级并行度来提升密码协处理器的性能。
宋辉[9](2009)在《YHFT-DSP编译关键技术分析及实现》文中研究指明YHFT-DSP是国防科学技术大学自主研制的高性能数字信号处理器,其特有的体系结构和指令集使已有的DSP编译器无法满足其应用需求。而支持高级语言编程有助于降低面向DSP芯片的程序设计,有利于DSP产品的推广。因此,针对YHFT-DSP编译关键技术的研究具有重要意义。本文针对YHFT-DSP的寄存器分配算法、指令级并行开发技术和编译器设计与实现方法进行了研究。本文主要贡献如下:1、针对YHFT-DSP的体系结构特点,基于最优染色算法,在GCC中实现了DOC(DSP Optimal Coloring,DSP最优染色算法)寄存器分配器。实验表明,该算法比GCC原有乐观染色算法产生的溢出变量更少,代码质量更高。2、本文对当前的主要开发指令级并行的编译技术进行了分析研究,并在GCC中实现了列表调度算法。提出前遍调度+寄存器分配+后遍调度的方案,保证有较高的ILP,又不会产生太多的变量溢出。3、最后,在分析GCC编译器的实现原理的基础上,通过移植GCC,实现了YHFT-DSP编译器原型。实验证明,该DSP编译器产生的汇编代码,经过汇编、链接生成的可执行文件在YHFT-DSP上运行正确。
闫昭[10](2009)在《程序并行识别方法及应用研究》文中认为并行计算就是在并行计算机或分布式计算机等高性能计算系统上所做的超级计算,其物质基础是高性能并行计算机。为了能在高性能并行计算机上生成高速运行的并行代码,并行化编译技术的研究和发展同样成为计算机科学研究领域的一个热点。串行程序自动并行化是并行编译技术最重要的内容之一,它自动将串行程序转换为等价的能在并行计算机上高效运行的并行程序,并且能克服并行计算机编程困难、软件移植困难的不足,降低并行程序开发成本。本文针对在编译阶段实现串行程序自动并行化课题提出了一系列的并行处理方法。首先研究了自动并行化中的并行粒度,通过对三种并行粒度的分析提出了一种中粒度并行的实现方法,其中主要提出了中粒度并行时的基本块的并行识别方法和并行优化方法,解决了并行处理时并行线程工作量与线程开销之间的矛盾,避免了在并行处理时可能出现的程序执行效率降低的现象;其次,针对占串行程序计算量主体的循环的自动并行化进行了研究,并且提出了关于紧嵌套循环的自动并行化方法,为了解决并行程序的硬件环境成本高的问题而提出的在多核系统下对紧嵌套循环进行自动并行化时的并行识别方法,数据划分方法和计算划分方法,实现了提高串行循环的执行速度,加大了程序自动并行化的应用力度;最后,设计了在并行化编译器中自动生成语法分析表时的一个自动并行处理算法,通过一个小的例子充分说明了并行的高效性。
二、指令级并行编译的关键技术研究(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、指令级并行编译的关键技术研究(论文提纲范文)
(1)超算典型应用优化技术研究与实践(论文提纲范文)
中文摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景与研究意义 |
1.2 国内外研究现状 |
1.3 本文研究内容 |
1.4 本文组织结构 |
第二章 超算应用优化技术概述 |
2.1 硬件层面优化 |
2.1.1 流水线 |
2.1.2 超标量 |
2.1.3 SIMD |
2.2 运行层面优化 |
2.2.1 应用程序参数调整 |
2.2.2 线程亲和性 |
2.3 编译层面优化 |
2.3.1 编译器选项优化 |
2.3.2 并行编译 |
2.3.3 数学库优化 |
2.4 算法层面优化 |
2.4.1 数据并行 |
2.4.2 任务并行 |
2.5 性能分析工具介绍 |
2.5.1 Intel?VTune |
2.5.2 Nmon |
2.6 性能评价标准 |
2.6.1 每秒浮点运算次数 |
2.6.2 墙钟时间 |
2.6.3 加速比 |
2.7 本章小结 |
第三章 基于VASP应用的通信并行参数优化研究与实现 |
3.1 VASP应用介绍 |
3.2 VASP应用分析 |
3.2.1 实验体系 |
3.2.2 实验环境 |
3.2.3 实验结果 |
3.2.4 实验结果分析 |
3.3 并行参数优化 |
3.3.1 VASP输入文件 |
3.3.2 参数设置常见错误 |
3.3.3 并行参数优化结果 |
3.4 并行参数优化结论 |
3.5 本章小结 |
第四章 基于数值预报模式系统WRF的编译优化实现 |
4.1 数值预报模式系统WRF |
4.2 WRF分析 |
4.3 WRF并行化编译实验 |
4.3.1 GCC编译选项优化 |
4.3.2 Intel编译选项优化 |
4.3.3 GCC与 Intel编译器对比 |
4.4 本章小结 |
第五章 基于冷冻三维电镜重构的傅里叶图像相似度计算算法优化 |
5.1 冷冻三维电镜重构原理 |
5.1.1 三维重构流程 |
5.1.2 傅里叶变换 |
5.1.3 中央截面定理 |
5.1.4 相似度计算 |
5.2 相似度计算算法分析 |
5.3 并行优化的实现 |
5.3.1 Open MP多线程性能优化 |
5.3.2 基于intrisics的 SIMD优化 |
5.4 实验结果与分析 |
5.4.1 测试环境 |
5.4.2 实验结果 |
5.4.3 实验结果分析 |
5.5 本章小结 |
第六章 基于相对论Hartree-Fock理论的张量力提取并行算法优化研究与实现 |
6.1 理论背景 |
6.1.1 有效拉氏量 |
6.1.2 Hartree-Fock方程 |
6.1.3 两体相互作用矩阵元中张量力 |
6.1.4 张量力提取 |
6.2 应用分析 |
6.3 并行优化算法实现 |
6.4 实验结果与分析 |
6.4.1 测试环境 |
6.4.2 实验结果 |
6.4.3 实验结果分析 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 本文总结 |
7.2 未来展望 |
参考文献 |
在学期间的研究成果 |
致谢 |
(2)基于LLVM的申威处理器并行编译技术研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 高性能计算 |
1.2.2 开源编译器 |
1.2.3 并行编译 |
1.3 主要研究内容与组织结构 |
2 相关理论与技术 |
2.1 申威处理器 |
2.2 LLVM编译器 |
2.3 多线程技术 |
2.4 锁机制 |
2.5 数据层并行优化 |
2.6 本章小结 |
3 编译锁机制的设计 |
3.1 锁机制的编译支持策略 |
3.1.1 原子操作语义映射流程 |
3.1.2 原子操作伪指令设计 |
3.1.3 不对齐内存地址处理 |
3.1.4 伪指令扩展Pass的实现 |
3.2 锁机制算法 |
3.2.1 对齐数据伪指令扩展算法 |
3.2.2 小粒度数据伪指令扩展算法 |
3.3 本章小结 |
4 基于DAG图的不对齐数据处理优化 |
4.1 指令选择中的有向无环图 |
4.2 不对齐数据处理优化策略 |
4.2.1 向量数据不对齐优化策略 |
4.2.2 标量数据不对齐优化策略 |
4.3 不对齐数据处理优化算法 |
4.3.1 向量数据不对齐优化算法 |
4.3.2 标量数据不对齐优化算法 |
4.4 本章小结 |
5 实验与分析 |
5.1 锁机制功能验证 |
5.2 锁机制性能验证 |
5.3 不对齐标量数据优化处理方案性能验证 |
5.4 不对齐向量数据优化处理方案性能验证 |
5.5 本章小结 |
6 总结与展望 |
6.1 全文总结 |
6.2 下一步工作展望 |
参考文献 |
个人简历、在学期间发表的学术论文与研究成果 |
致谢 |
(3)分组密码专用描述语言及编译技术研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 密码算法编程语言 |
1.2.2 处理器的编译技术 |
1.2.3 处理器的编译优化技术 |
1.3 本文主要研究工作 |
1.3.1 研究内容 |
1.3.2 论文结构 |
第二章 理论研究基础 |
2.1 领域专用语言设计概念 |
2.2 分组密码算法特点 |
2.2.1 分组密码算法数学模型 |
2.2.2 分组密码算法的网络结构 |
2.3 可重构分组密码指令集处理器 |
2.3.1 RVBCP体系结构及功能单元 |
2.3.2 RVBCP指令系统 |
2.4 本章小结 |
第三章 分组密码专用描述语言及编译基础设施研究 |
3.1 引言 |
3.2 分组密码专用描述语言建模 |
3.2.1 问题域分析 |
3.2.2 解答域分析 |
3.3 分组密码专用描述语言定义及实例 |
3.3.1 变量类型与数据表示 |
3.3.2 标识符与关键字 |
3.3.3 函数与程序控制结构 |
3.3.4 分组密码描述语言的格式 |
3.4 面向分组密码专用描述语言的编译器基础设施设计 |
3.4.1 词法分析器设计 |
3.4.2 语法分析器设计 |
3.4.3 语义分析器设计 |
3.5 本章小结 |
第四章 编译器结构设计及前端编译优化研究 |
4.1 引言 |
4.2 优化编译结构设计 |
4.2.1 分组密码异构SoC结构及工作流程 |
4.2.2 编译器结构设计原则 |
4.2.3 反馈式编译器结构设计 |
4.3 反馈式编译器前端优化算法研究 |
4.3.1 基于平均代码行数的循环展开算法研究 |
4.3.2 标量替代算法研究 |
4.4 实验及分析 |
4.4.1 实验验证 |
4.4.2 实验结果分析 |
4.5 本章小结 |
第五章 可重构分组密码指令集处理器的自动映射研究 |
5.1 引言 |
5.2 分析与参数建模 |
5.2.1 分组密码算子调度与映射参数模型 |
5.2.2 可重构分组密码指令集处理器资源模型 |
5.2.3 资源消耗与资源约束关系分析 |
5.3 可重构指令集处理器自动映射算法 |
5.3.1 初始化调度 |
5.3.2 资源分配与结点调度调整 |
5.4 实验及分析 |
5.4.1 实验设计 |
5.4.2 实验结果分析 |
5.5 本章小结 |
第六章 面向VLIW结构密码处理器的低功耗指令调度研究 |
6.1 引言 |
6.2 VLIW结构的指令级低功耗分析 |
6.2.1 密码处理器功耗的编译调优方法分析 |
6.2.2 低功耗调度原理分析及低功耗指令调度问题 |
6.3 面向低功耗指令调度问题求解的改进广义遗传算法 |
6.3.1 遗传算法、广义遗传算法与禁忌搜索算法 |
6.3.2 基于禁忌搜索的改进广义遗传算法设计 |
6.4 实验及分析 |
6.4.1 IGGABTS算法仿真实验 |
6.4.2 平均功耗测试 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 研究总结 |
7.2 创新点总结 |
7.3 展望 |
致谢 |
参考文献 |
(5)面向动态双模多层次并行体系结构的编译优化技术研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.1.1 动态双模多层次并行体系结构介绍 |
1.1.2 动态双模多层次并行体系结构特点分析 |
1.1.3 动态双模多层次并行体系结构对编译提出的挑战 |
1.2 相关研究工作 |
1.2.1 SIMD向量化相关研究 |
1.2.2 数据重组相关研究 |
1.2.3 循环展开相关研究 |
1.2.4 多面体优化相关研究 |
1.3 本文的工作和创新 |
1.4 论文结构 |
第二章 动态双模多层次并行模型 |
2.1 引言 |
2.2 动态双模多层次并行执行模型 |
2.2.1 动态双模 |
2.2.2 宽字向量SIMD |
2.2.3 超长指令字 |
2.3 编程模型 |
2.4 多层次并行代价模型 |
2.5 本章小结 |
第三章 支持任务级并行的动态双模优化调度技术 |
3.1 引言 |
3.2 动态双模优化调度技术 |
3.2.1 参数分析 |
3.2.2 独立任务双模调度 |
3.2.3 流调度 |
3.2.4 双模切换调度 |
3.2.5 动态双模切换代价模型 |
3.3 实验与分析 |
3.4 本章小结 |
第四章 支持数据级并行的宽字向量SIMD数据重组编译优化技术 |
4.1 引言 |
4.2 宽字向量SIMD数据重组编译优化技术 |
4.2.1 多模数据重组 |
4.2.2 宽向量填充数据重组 |
4.2.3 分支数据重组 |
4.3 宽字向量SIMD数据重组编译优化技术的实际应用 |
4.3.1 向量数据布局 |
4.3.2 向量运算中的数据重组 |
4.3.3 分级数据重组 |
4.4 实验与分析 |
4.5 本章小结 |
第五章 支持数据级并行和指令级并行的多层次循环优化编译技术 |
5.1 引言 |
5.2 多层次循环优化编译技术 |
5.2.1 多面体优化模块 |
5.2.2 子字与超字SIMD向量化模块 |
5.2.3 面向VLIW的循环优化模块 |
5.2.4 运行时优化模块 |
5.3 实验与分析 |
5.4 本章小结 |
第六章 动态双模多层次并行编译系统 |
6.1 动态双模多层次并行编译系统介绍 |
6.2 三种编译优化技术在编译系统中的作用 |
6.3 实验与分析 |
6.4 本章小结 |
第七章 结束语 |
7.1 论文工作总结 |
7.2 课题研究展望 |
致谢 |
参考文献 |
作者在学期间取得的学术成果 |
附录:英文缩写对照表 |
(6)面向嵌入式多核系统的并行程序优化技术研究(论文提纲范文)
摘要 |
Abstract |
目录 |
第1章 绪论 |
1.1 课题研究的背景 |
1.2 课题研究的目的和意义 |
1.3 国内外在该方向上的研究现状及分析 |
1.3.1 片上多核处理器发展现状与趋势 |
1.3.2 基于CMP的高性能嵌入式计算研究现状 |
1.3.3 嵌入式多核并行优化技术研究现状 |
1.3.4 当前高性能嵌入式计算技术所面临的新问题及论文主要研究内容 |
1.4 论文的组织结构 |
第2章 嵌入式多核系统下的OpenMP并行编译与优化方法研究 |
2.1 引言 |
2.2 相关研究背景 |
2.3 嵌入式多核系统 |
2.3.1 嵌入式多核存储层次结构 |
2.3.2 嵌入式多核下的并行编程 |
2.4 嵌入式多核下的OpenMP并行编译 |
2.4.1 嵌入式多核下的OpenMP编译结构 |
2.4.2 OpenMP编译器在嵌入式系统eCos上的实现 |
2.5 嵌入式多核下的并行优化 |
2.5.1 基于循环分块的OpenMP优化算法 |
2.5.2 面向嵌入式多核的OpenMP制导语句扩展 |
2.5.3 嵌入式多核Cache结构对并行优化性能影响分析 |
2.6 本章小结 |
第3章 基于运行时的嵌入式多核性能动态优化方法研究 |
3.1 引言 |
3.2 相关研究背景 |
3.3 嵌入式多核系统下的并行程序分析 |
3.3.1 并行程序结构 |
3.3.2 基于并行程序结构的性能分析模型 |
3.3.3 并行线程性能分析 |
3.4 嵌入式多核优化运行时系统框架 |
3.5 运行时线程优化策略 |
3.5.1 评估方法 |
3.5.2 评估验证与性能分析 |
3.6 运行时线程调度策略 |
3.6.1 调度策略 |
3.6.2 调度策略对性能的影响 |
3.6.3 调度策略对负载不均衡程度的影响 |
3.6.4 自适应调度算法 |
3.6.5 实验与数据分析 |
3.7 本章小结 |
第4章 基于线程负载的嵌入式多核低功耗优化方法研究 |
4.1 引言 |
4.2 相关研究背景 |
4.3 线程负载分析方法 |
4.3.1 嵌入式多核下的并行线程负载 |
4.3.2 线程负载预测 |
4.4 低功耗优化模型 |
4.4.1 能耗分析 |
4.4.2 低功耗执行基本思想 |
4.4.3 低功耗执行模型 |
4.5 低功耗方法实现 |
4.5.1 运行时系统设计 |
4.5.2 线程负载能耗优化算法 |
4.5.3 低功耗优化的硬件实现 |
4.6 实验与数据分析 |
4.7 本章小结 |
第5章 基于能量效率的反馈式嵌入式多核动态电压频率调整方法 |
5.1 引言 |
5.2 相关研究背景 |
5.3 基于线程负载的DVFS分析 |
5.4 嵌入式多核DVFS架构 |
5.5 反馈式DVFS设计 |
5.5.1 反馈式DVFS框架 |
5.5.2 计算DVFS档位 |
5.6 反馈式DVFS框架实现 |
5.7 实验与数据分析 |
5.7.1 嵌入式多核系统配置 |
5.7.2 程序负载影响分析 |
5.7.3 能量有效(EDP)分析 |
5.8 本章小结 |
结论 |
参考文献 |
攻读学位期间发表的学术论文 |
致谢 |
个人简历 |
(7)面向共享存储结构的并行编译优化技术研究(论文提纲范文)
摘要 |
Abstract |
图录 |
表录 |
第一章 绪论 |
1.1 并行体系结构概述 |
1.1.1 并行体系结构的发展历程 |
1.1.2 影响现代并行体系结构性能发挥的因素 |
1.1.3 共享存储并行系统 |
1.2 并行化编译技术 |
1.2.1 发展现状 |
1.2.2 面临的技术挑战 |
1.3 研究内容 |
1.3.1 面向规则DOACROSS循环的自动并行 |
1.3.2 OpenMP PS-DSWP并行 |
1.3.3 面向OpenMP自动并行化的代价模型 |
1.3.4 面向异构系统的数据传输优化 |
1.4 论文的组织结构 |
第二章 规则DOACROSS循环的自动并行 |
2.1 问题的提出 |
2.2 相关研究 |
2.3 流水并行粒度的优化 |
2.3.1 基于循环分块增大流水粒度 |
2.3.2 基于循环分块减小流水粒度 |
2.3.3 流水并行代价模型 |
2.3.4 流水并行粒度优化算法及实例分析 |
2.4 流水并行代码的自动生成 |
2.4.1 选择计算划分层和循环分块层 |
2.4.2 计算划分 |
2.4.3 同步的实现 |
2.4.4 流水并行代码自动生成算法 |
2.5 实验结果与分析 |
2.5.1 并行性能测试 |
2.5.2 分块大小选择测试 |
2.6 本章小结 |
第三章 OpenMP PS—DSWP自动并行 |
3.1 问题的提出 |
3.2 相关研究 |
3.3 基于OpenMP的PS-DSWP并行 |
3.3.1 线程任务的分配 |
3.3.2 线程间依赖关系的处理 |
3.3.3 OpenMP PS-DSWP自动并行算法 |
3.3.4 正确性证明 |
3.4 OpenMP任务调度机制的扩展与实现 |
3.4.1 OpenMP任务调度机制 |
3.4.2 扩展的任务绑定属性 |
3.4.3 任务绑定属性在GCC中的实现 |
3.5 实验结果与分析 |
3.5.1 对热点循环的测试 |
3.5.2 对NPB3.3.1的测试 |
3.6 本章小结 |
第四章 自动并行化中的代价模型 |
4.1 问题的提出 |
4.1.1 并行收益分析 |
4.1.2 代价模型 |
4.2 相关研究 |
4.3 代价模型的建立 |
4.3.1 硬件模型 |
4.3.2 串行代价模型 |
4.3.3 并行代价模型 |
4.4 实验结果及分析 |
4.4.1 测试方法 |
4.4.2 测试结果 |
4.5 本章小结 |
第五章 面向异构系统的数据传输优化 |
5.1 问题的提出 |
5.2 相关研究 |
5.3 对OpenMP数据管理机制的扩展 |
5.4 分块规则数组区域 |
5.4.1 分块规则数组区域的定义 |
5.4.2 分块规则数组区域的合并操作 |
5.5 数据加载子句的自动生成 |
5.5.1 多面体模型 |
5.5.2 单个数组引用 |
5.5.3 更加复杂的情况 |
5.6 实验结果及分析 |
5.6.1 测试环境 |
5.6.2 测试结果及分析 |
5.7 本章小结 |
第六章 结论与展望 |
6.1 全文工作总结 |
6.2 下一步工作展望 |
致谢 |
参考文献 |
作者简历 |
(9)YHFT-DSP编译关键技术分析及实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 课题背景及意义 |
1.2 编译技术 |
1.3 DSP 编译技术 |
1.3.1 DSP 的发展及其体系结构特点 |
1.3.2 DSP 编译器的作用 |
1.3.3 DSP 编译器的特点 |
1.4 YHFT-DSP 的体系结构及指令集 |
1.4.1 体系结构特点 |
1.4.2 指令系统及指令集 |
1.5 本文的研究内容及文章结构 |
1.5.1 研究内容 |
1.5.2 论文结构 |
第二章 编译器工作过程 |
2.1 语言与文法 |
2.2 词法分析 |
2.2.1 词法与正规式 |
2.2.2 有限自动机与词法程序 |
2.3 语法分析 |
2.3.1 语法分析概述 |
2.3.2 LR 语法分析器 |
2.4 中间代码生成 |
2.5 运行时环境 |
2.6 目标代码生成 |
2.7 小结 |
第三章 基于最优染色算法的DSP 寄存器分配算法 |
3.1 图染色寄存器分配概述 |
3.1.1 建立冲突图 |
3.1.2 顶点合并 |
3.1.3 染色 |
3.1.4 变量溢出 |
3.2 图染色寄存器分配算法研究现状 |
3.2.1 Chaitin 启发式方法 |
3.2.2 Briggs 乐观染色算法 |
3.2.3 其他改进算法 |
3.2.4 现有图染色算法的不足 |
3.3 DSP 寄存器分配的图染色算法 |
3.3.1 DSP 的寄存器分配算法 |
3.3.2 实验及其结果分析 |
3.4 小结 |
第四章 指令级并行开发技术与资源冲突解决策略分析 |
4.1 指令级并行开发技术分析 |
4.2 指令级并行开发和资源冲突解决策略实现 |
4.2.1 依赖边延迟的计算 |
4.2.2 指令调度优先级的设置 |
4.2.3 跳转操作延迟的隐藏 |
4.2.4 资源冲突的解决 |
4.3 小结 |
第五章 基于GCC 的YHFT-DSP 编译器原型 |
5.1 GCC 编译器流程剖析 |
5.2 C 编译器CC1 剖析 |
5.2.1 cc1 的结构及编译流程 |
5.2.2 cc1 重要模块分析 |
5.2.3 后端实现关键点分析 |
5.3 基于GCC 实现YHFT-DSP 编译器原型 |
5.3.1 YHFT-DSP 的目标机器宏变量 |
5.3.2 YHFT-DSP 的扩展模板定义和指令模式 |
5.3.3 系统集成 |
5.3.4 系统测试 |
5.4 小结 |
第六章 结束语 |
6.1 工作总结 |
6.2 下一步的工作 |
致谢 |
参考文献 |
作者在攻读硕士学位期间取得的学术成果 |
(10)程序并行识别方法及应用研究(论文提纲范文)
提要 |
第1章 绪论 |
1.1 研究背景 |
1.2 并行计算 |
1.2.1 并行计算的概念 |
1.2.2 并行计算的分类 |
1.2.3 并行计算的应用 |
1.2.4 并行算法 |
1.3 并行程序开发方法 |
1.3.1 并行层次与代码粒度 |
1.3.2 并行程序的开发策略 |
1.4 并行程序设计模式 |
1.4.1 并行程序设计模式的基本思路 |
1.4.2 并行程序设计模式 |
1.5 本文的主要工作和意义 |
1.6 本文的组织结构 |
第2章 并行化编译器的相关研究 |
2.1 并行化编译系统 |
2.2 并行化编译器 |
2.3 并行化编译器中 LL(1)分析表自动生成的并行算法设计 |
2.3.1 概述 |
2.3.2 相关定义和结论 |
2.3.3 LL(1)分析表自动生成的并行算法 |
2.3.4 算法实例 |
2.3.5 性能分析 |
2.4 本章小结和进一步的工作 |
2.4.1 小结 |
2.4.2 今后的工作 |
第3章 并行识别方法的研究 |
3.1 概述 |
3.2 依赖关系 |
3.2.1 依赖关系分析的基础知识 |
3.2.2 控制依赖关系 |
3.2.3 数据依赖关系 |
3.2.4 数据依赖关系分析 |
3.3 基于数据依赖关系的面向基本块的并行识别方法 |
3.3.1 前言 |
3.3.2 与算法相关的基础知识 |
3.3.3 面向基本块的并行识别算法 |
3.3.4 针对本算法的并行优化策略 |
3.3.5 算法性能分析 |
3.4 基于数据依赖关系的面向循环的并行识别方法 |
3.4.1 前言 |
3.4.2 循环中的依赖关系测试 |
3.4.3 循环变换技术 |
3.4.4 循环并行化 |
3.5 本章小结和进一步工作 |
第4章 并行识别在多核环境下的程序自动并行化中的应用 |
4.1 概述 |
4.2 片上多核处理器(CMP) |
4.2.1 多核CPU概述 |
4.2.2 CMP硬件特性 |
4.2.3 基于多核CPU的并行计算 |
4.2.4 基于多核CPU并行计算的性能分析 |
4.3 任务划分和数据划分 |
4.3.1 数据划分 |
4.3.2 任务划分 |
4.4 基于CMP的任务划分方法 |
4.4.1 串行循环自动并行化中任务划分方法 |
4.4.2 基于任务量划分的紧嵌套循环的自动并行化方法 |
4.4.3 性能分析和优化 |
4.5 循环自动并行化中一种基于CMP的数据划分方法 |
4.5.1 基本概念 |
4.5.2 数据划分方法 |
4.5.3 性能分析 |
4.6 本章小结和进一步工作 |
第5章 总结与展望 |
5.1 全文工作总结 |
5.2 进一步工作 |
参考文献 |
致谢 |
攻读博士期间已发表和已录用的文章 |
摘要 |
ABSTRACT |
四、指令级并行编译的关键技术研究(论文参考文献)
- [1]超算典型应用优化技术研究与实践[D]. 王迪. 兰州大学, 2021(09)
- [2]基于LLVM的申威处理器并行编译技术研究[D]. 巩令钦. 郑州大学, 2020(02)
- [3]分组密码专用描述语言及编译技术研究[D]. 李盛. 战略支援部队信息工程大学, 2020(03)
- [4]SIMD自动向量化编译优化概述[J]. 高伟,赵荣彩,韩林,庞建民,丁锐. 软件学报, 2015(06)
- [5]面向动态双模多层次并行体系结构的编译优化技术研究[D]. 阳柳. 国防科学技术大学, 2014(02)
- [6]面向嵌入式多核系统的并行程序优化技术研究[D]. 王庆. 哈尔滨工业大学, 2013(01)
- [7]面向共享存储结构的并行编译优化技术研究[D]. 刘晓娴. 解放军信息工程大学, 2013(02)
- [8]密码协处理器指令级并行编译研究[J]. 高飞,李红燕,张永福. 计算机应用研究, 2010(05)
- [9]YHFT-DSP编译关键技术分析及实现[D]. 宋辉. 国防科学技术大学, 2009(S2)
- [10]程序并行识别方法及应用研究[D]. 闫昭. 吉林大学, 2009(07)