一、Cache性能和优化的研究(论文文献综述)
李爽[1](2021)在《面向申威1621多核处理器的BLAS3扩展函数优化技术》文中进行了进一步梳理自“神威·太湖之光”计算机问鼎世界,我国高性能计算机和高性能计算应用蓬勃发展,位居世界前列。在当下国际激烈竞争中,自主可控技术和自主可控的知识产权显得尤为重要,而仅仅自主可控只是一个良好的开端,如何构建具有足够竞争优势的自主可控产业生态链是需要投入大量时间精力,科研开发人员全身心投入科研实践中去,探究摸索,搭建环境,最重要的是结合架构去优化底层库,使之更好的为上层应用服务。基础线性代数子函数库(BLAS),作为高性能计算中最基本的数学库,对高性能计算机平台上的数值计算、人工智能等领域应用都起着重要作用。许多大规模科学计算应用,如流体动力学、大气数值模拟等,均依赖于高度优化的BLAS库来获得高效的运行效率。BLAS3级函数是矩阵与矩阵的运算,其中,GEMM是整个BLAS库性能的核心指标。由于矩阵乘法运算,是人工智能领域的重要热点函数,近年来,矩阵乘法的高性能优化成为了学术界和工业界的研究热点。稠密矩阵乘法属于计算密集的函数,且计算访存规则,如何充分利用平台特性,优化出足以发挥平台优势的BLAS库,是提升性能的关键。目前,还没有能够充分发挥申威1621平台优势的高性能BLAS库。针对上述问题,我们在申威1621平台上,进行了Goto BLAS的实现与优化。结合申威1621平台特性从算法级优化、线程级优化、指令级优化三个方面进行研究,提出相关的优化技术,并取得了一定的性能提升与加速。本文完成的研究内容和主要贡献如下:1.本文进行GEMM函数算法优化时,提出了计算模式改进,其思想不仅仅适用于申威1621平台,对于其他平台,同样可获得一定的性能提升。2.提出了一种使用SIMD向量化进行核心代码优化的算法实现,为满足向量优化的算法实现分别进行了数据重排、计算数据块选择、浮点寄存器分配、向量化指令改写等优化技术。分别比较了SGEMM和DGEMM在Micro-kernel中使用cache行和使用向量化优化的最优数据块选择方案,并使用单核优化方式扩展到多核多线程进行实验验证。测试结果表明,优化后最佳分块下的SGEMM单核性能比Goto BLAS单核单精度浮点数平均加速52.09倍,DGEMM单核性能比Goto BLAS单核双精度浮点数平均加速32.75倍。3.在多核并行下,提出的多核多线程的三种优化方案,1)初始线程缓冲区大小预设;2)减少计算任务重叠;3)保证线程安全的互斥锁换为原子锁。进一步发挥多核多线程性能优势,SGEMM函数4线程、8线程、16线程较优化后的单线程平均加速比分别为3.43、7.11、14.75;DGEMM函数4线程、8线程、16线程较优化后的单线程平均加速比分别为3.49、7.06、13.66。平均并行效率最高达92.19%。
李浩然[2](2021)在《基于申威1621平台BLAS一、二级函数优化研究》文中认为随着高性能处理器的不断发展,高性能应用层出不穷,BLAS(Basic Linear Algebra Subprograms)线性代数基础子库作为各类高性能应用软件的基础,其运算性能往往决定了高性能应用软件的性能水平。目前各大主流处理器厂家都针对各自的处理器推出了基于自身架构平台的BLAS库。申威平台作为拥有自主产权的国产高性能处理器代表,被广泛应用于各个领域。但由于其软件生态的不完备,许多软件并没有针对它的架构进行性能优化。BLAS作为关键基础计算软件之一,迫切需要针对申威处理器平台深度优化的高性能实现的版本。本文在申威1621处理器上,结合申威处理器的结构特性,对BLAS一、二级函数进行设计与优化。本文首先分析了申威1621处理器体系结构,特别是对函数性能影响较大的流水线特点以及存储器的特点,随后介绍了常用的优化方法,并结合申威1621处理器的体系结构进行分析,鉴于BLAS库优化研究的内容不同,本文主要以优化难度相对高的BLAS一级和二级函数库,作为优化对象进行研究,主要的研究内容和贡献如下:1)根据BLAS一级函数的特点,将BLAS一级函数的优化目标确定在对内存访问的优化上,通过使用SIMD向量化指令增加数据级并行程度,利用循环展开、指令重排等技术降低数据和指令间的依赖关系,提升流水并行程度。对于多线程的使用方式上,本文设计了线程自动分配方案,优化开启线程数量,最终将BLAS一级函数单核优化加速比为4.36,多核优化加速比为9.50;2)针对BLAS二级函数只用对矩阵进行一次访问的计算特点,结合在申威1621处理器上矩阵的存储方式,本文设计使用了行主序存储,列主序访问的数据访问方式。首先通过循环展开降低了内存访问次数、增大循环内数据计算量,并利用申威1621处理器提供的SIMD向量指令进行向量化优化,提升数据访存效率,同时配合指令重排技术消除指令间的依赖关系。针对小规模矩阵的情况下,对内存分配函数的替换,提升函数整体性能,最终将BLAS二级函数性能提升25%以上;本文提出的各种优化方法对申威处理器平台上的高性能BLAS实现具有重要的指导意义。
付建宇[3](2020)在《云计算平台虚拟机端缓存优化关键技术研究》文中研究指明云计算平台是支撑互联网应用服务和大数据处理不可替代的基础设施,已经广泛应用于人类的生产、生活和城市治理的方方面面,呈现出大量数据密集型应用和日益提高的多应用粘合度,这不断加剧了云计算平台的I/O压力。为了支持应用迁移,提高云服务可靠性,云计算平台中的虚拟机使用分布共享存储资源来存储其关键数据。共享存储通过内部网络(如以太网)互连,大数据量存取的带宽可超过单磁盘带宽,但是,在小量数据存取时,延迟大,平均带宽低。为提高云计算平台的I/O性能,虚拟机客户端广泛采用SSD作为数据缓存。然而,虚拟机特有的I/O操作特性大幅限制了客户端SSD缓存性能的充分发挥,具体表现为:在COW(Copy-on-Write)虚拟磁盘下,SSD缓存效率低;虚拟机文件系统的日志机制降低了SSD缓存效率;SSD存储空间有限,需根据虚拟机的QoS需求分配SSD缓存空间。本文针对上述三类技术难题,创新性地提出了以下技术解决方法。一、提出了根据COW虚拟磁盘I/O特性进行优化的数据缓存策略云计算平台中的虚拟机通常使用COW虚拟磁盘以提供多种虚拟机功能。然而,本文发现COW虚拟磁盘的元数据管理和COW机制,会将虚拟机发出的I/O请求数量扩大数倍,给SSD缓存带来低效的元数据性能和COW缓存扩大问题,不仅加剧了SSD磨损,还降低了I/O性能。针对上述挑战,本文提出了一个感知COW虚拟磁盘I/O特性的高效SSD缓存系统,具有三个创新点:(1)设计了一种新的SSD缓存管理架构,可以消除COW虚拟磁盘和SSD缓存的管理之间的语义隔阂,从而能够实现跨层次优化;(2)设计了一种细粒度的元数据缓存与合并写机制,通过匹配元数据的局部性特征,提高了元数据的缓存效率;(3)设计了一种解耦合COW机制,通过将COW虚拟磁盘扩大的I/O请求从关键I/O路径中解耦合出去,并只在SSD中缓存局部性高的数据,消除了COW缓存扩大问题。实验表明,相较于不感知COW虚拟磁盘的传统SSD缓存方案,该系统将虚拟机的I/O性能提高了多达122.7%,将SSD缓存的磨损减少了多达78.5%。二、提出了协同SSD缓存来保证虚拟机文件系统一致性的策略云计算平台中的虚拟机文件系统主要使用日志机制来维护存储一致性。然而,本文发现日志机制具有重复写模式(即对于文件系统的修改操作,需先写到日志区域,再更新到原始位置),其不仅会给分布式存储系统带来大量的日志写I/O,也会在SSD缓存中造成大量的冗余数据,从而降低虚拟机的I/O性能和SSD缓存的使用寿命。针对上述挑战,本文提出协同使用SSD缓存来保证虚拟机文件系统的一致性,具有三个创新点:(1)设计了一个虚拟日志设备,可以在SSD缓存管理器中获取虚拟机中日志机制的语义;(2)设计了一个缓存即日志区机制,通过将SSD缓存作为虚拟机文件系统的目标日志区域,消除了到分布式存储系统的日志写I/O,进而缓解了分布式存储系统的I/O压力;(3)设计了一个逻辑缓存机制,通过识别文件系统的同一修改带来的日志写I/O和原地写I/O,消除了二者在SSD缓存中产生的冗余数据。实验表明,相较于传统的SSD缓存方案,该方案将虚拟机的I/O性能提高了多达11.4倍,将SSD缓存的磨损减少了多达42%。三、提出了一种确定虚拟机实际缓存空间需求的R-MRC曲线以及基于该曲线且以QoS需求为导向的SSD缓存空间动态分配策略云计算平台中的SSD缓存通常由多个同时运行的虚拟机共享使用,不同的虚拟机具有不同的缓存使用模式,对于QoS服务质量的需求也各不相同。本文发现(1)传统的用于确定虚拟机的缓存空间与缓存性能之间关系的MRC曲线会高估其实际缓存空间需求;(2)传统的SSD缓存空间分配方案没有充分考虑单个虚拟机的QoS需求,从而导致有限的SSD缓存空间无法得到高效的利用。针对上述挑战,本文首先提出了一种新的R-MRC曲线,通过区分数据的局部性来确定虚拟机的真实缓存空间需求;然后提出了一种基于R-MRC曲线的SSD缓存空间动态分配算法,能够更好地满足每个虚拟机的QoS需求。实验表明,相较于传统的SSD缓存空间分配方案,该方案将所有虚拟机与其QoS目标之间的整体距离减少了多达80.6%,将SSD缓存的磨损减少了多达43.2%。
段晓辉[4](2020)在《基于“神威·太湖之光”的分子动力学算法优化》文中指出生物、化学、材料和医药科学的不断发展推动了人类认识和了解微观世界的需求大大增加,但是在分子、原子、原子团尺度上进行观测的成本仍旧高昂,尤其是对于微观过程的连续观测需要更加复杂精密的仪器,同时,一部分微观过程的时间尺度非常小,使得在实验室中捕捉这些微观过程十分困难。因此,使用计算机进行微观层面的模拟对认识和了解微观世界显得尤为重要。使用计算机模拟微观世界的主要方法包括第一性原理模拟、分子动力学模拟、蒙特卡洛模拟等。其中分子动力学模拟是最为常用的一种方法。随着分子动力学在科学研究领域中的应用越来越广泛,对分子动力学模拟效率的需求也不断增加,这主要是因为分子动力学模拟中的时间尺度和空间尺度的不断增长。为了满足这样的需求,分子动力学模拟在应用中不断利用新的计算机技术和计算硬件来提高效率,例如使用SIMD、异构众核、定制芯片和大规模并行等方法。2016年发布的神威·太湖之光超级计算机采用了 40960个SW26010处理器,实现了 125 PFlops/s的理论浮点性能,是中国第一台使用国产处理器登顶Top500榜单的超级计算机。由于其采用的SW26010处理器在架构上有巨大的革新,在实现了极高的运算速度的同时也有很好的能耗比,但这些架构变化也带来了内存模型和编程模型的巨大变动,使得原有的科学计算软件难以有效利用神威·太湖之光杰出的运算能力。虽然SW26010处理器采用的主核和从核异构并行的模式已经见于配备了 GPU、MIC等加速器的计算平台中,但是SW26010的节点没有GDDR或HBM等居于主存和加速器间的高速中间内存。SW26010处理器采用了从主存到从核片上缓存直接传输数据方式,这要求我们重新为算法设计内存访问模式。同时,从核的片上缓存不是常见的自动Cache,而是64KiB的LDM,数据的装入和写回由从核通过对应的指令发起,这给应用程序对从核的使用带来了新的机遇和挑战:一方面需要对应用进行很大的改造才能使之适应这种由软件控制缓存的模型,另一方面这也提供了更好的机会来控制数据的换入换出,实现对LDM的高效利用。目前,在神威·太湖之光超级计算机上开展分子动力学算法优化的研究存在的主要挑战有:1)分子动力学应用中需要进行大量的离散访存的情况,而SW26010处理器使用DMA访问主存的带宽太低,这种硬件架构和算法的不匹配使得分子动力学模拟在SW26010处理器上取得较为理想的性能非常困难。2)SW26010处理器的从核不能单独启动进程,分子动力学应用中常见的多进程并行框架无法有效利用从核,而分子动力学应用中现存的多线程并行框架往往是为了在超线程处理器上利用逻辑线程而设计的,与SW26010中使用多线程方式来利用物理计算核心的架构也不匹配。3)因为分子动力学是离散访存的应用,在多线程计算中,不可避免的会面临写冲突的问题,对于在SW26010上处理写冲突的问题,可以借鉴的经验比较少。4)分子动力学的计算部分非常复杂,一方面是除平方根这类耗时的数学计算,另一方面是在键角、扭转角和键级计算中需要的超越函数的计算量也很大,所以进行高效的向量化也是需要处理的问题。为了解决以上挑战,基于分子动力学模拟算法和神威·太湖之光超级计算机体系结构上的特点,本文针对分子动力学模拟过程中的数据读取、计算、数据更新和邻域索引等关键环节设计了相应的优化方案并开展了深层算法优化。此外,针对通用的算法优化环节,本文还设计并实现了面向神威平台的通用模块,这些模块不仅能够为分子动力学模拟算法的优化提供极大便利,而且还能很好的应用于面向神威平台的其它算法的优化和快速实现。具体来说,本文的主要贡献如下:1.设计了简洁高效的软件Cache策略以及深入优化的无表方法来解决SW26010处理器在分子动力学模拟的势函数计算中离散读取的问题。文中根据AMAT访存模型对软件Cache的设计中主要的性能指标进行了取舍,完成了高效的软件Cache实现。另外,根据SW26010处理器的特性,尝试了利用无邻接表方法来完成原子数据的离散读取。两种方法在实验中都可以匹配SW26010处理器的DMA机制并且充分利用SW26010处理器的内存带宽。2.设计了单端更新、混合更新和自适应更新框架来解决分子动力学模拟的势函数计算中离散更新和并行更新冲突的问题。单端更新采用计算换访存的方式来规避并行更新冲突,混合更新的方式将计算和更新分离,实现了计算并行化而更新串行化的模式,在不额外引入计算量的情况下实现了主从协同的高效更新方式。自适应更新框架使用观察者-执行者模式来完成低成本的副本归约机制,实现了无冲突的高效更新。三种框架适用于不同类型的势函数,都实现了对SW26010处理器内存带宽的有效利用。3.设计了基于向量混洗、参数剖面和无查表数学函数的向量化方式来提高势函数计算中的计算效率,同时引入了向量短路机制和格点-粒子截断过滤器来规避势函数计算中不必要计算部分。基于向量混洗、参数剖面、向量短路和无查找表数学函数的实现使得在本文对应的实现可以在向量化过程中应对分子动力学模拟中各种复杂的运算。向量短路机制和格点-粒子截断过滤器可以将模拟中的计算负载降低三分之一以上。4.设计了聚合扫描的邻接表构造方法和增量格点索引构造算法来加速分子动力学模拟中邻域索引的构造。聚合扫描的方法通过循环重构、访存聚合的方式来增大访存块,提高基于从核的邻接表构造中的数据复用率。增量格点索引索引构造算法充分利用了分子动力学中粒子运动连续的特性来提高算法中的访存局部性,从而在根源上规避分子动力学的邻域索引构造中全局随机访存的问题,实现了对格点索引构造非常有效的加速。5.设计了软件Cache库SWCache、无表的向量化数学函数库、性能采样库LWPF、调试库Libspc等工具来解决神威.太湖之光软件生态不完善的问题。这些工具不仅加速了本文研究的过程,也对其他基于神威·太湖之光的研究有所帮助,其中SWCache和LWPF在SW26010的从核编译器没有C++支持的情况下采用的封装模式也对未来基于SW26010和神威系列超级计算机的应用开发有借鉴价值。本文在神威·太湖之光上,利用已有的分子动力学软件LAMMPS和AM-BER,以及 自主编写的分子动力学软件 ESMD 对本文中设计的优化方法进行了测试和验证。在测试中,本文中的设计与实现在SW26010处理器上可以接近或超出同代商用处理器的性能,并且在大规模扩展中实现了 16384节点上对2 750亿原子的模拟,并达到2.43 PFlops每秒的持续浮点性能。
杜鑫[5](2020)在《申威处理器页表结构Cache的优化研究与实现》文中研究说明如何有效解决主存性能与微处理器性能之间不断增大的差距带来的“存储墙问题”,是微处理器发展中不断探索的问题。通过设置高速缓存(Cache),采用层次化的存储结构是现代微处理器普遍采用的技术之一。虚实地址转换一般处于Cache访问的关键路径上。现代微处理器都会采用内存管理单元(Memory Management Unit)硬件实现页式存储管理,采用旁路转换缓冲(Translation Lookaside Buffer)来提高虚实地址代换的速度;因此,内存管理单元的优化设计对微处理器整体性能的提高具有至关重要的作用。随着应用程序规模越来越大,微处理器需要的页表空间也随之增大。多级页表的使用有效缓解了页表空间问题,但同时也增加了未命中TLB时的处理开销,该开销会占用大量的处理器运行时间,降低处理器性能。分析影响性能因素,通过选择合适的参数,并根据不同微处理器的微结构选择合适的内存管理单元缓冲(MMU Cache),是能减少TLB未命中硬件处理开销的有效办法。因此,设计合理的内存管理单元缓冲对微处理器也是必不可少的。本论文以申威处理器新一代服务器处理器为研究对象,设计合适的页表结构缓冲,结合该页表结构缓冲优化设计MMU的管理,同时提出并实现一种采用基于状态机控制的硬件自动查询页表并主动装填TLB的方法。本论文先通过对内存管理单元和MMU Cache的结构、工作原理和性能影响因素等方面的深入研究,重点分析其各项参数对设计的影响;通过对应用环境、成本和功耗等因素的考虑,使用模拟器进行实验测试,根据数据分析确定页表结构缓冲的设计参数,确定页表结构缓冲和MMU的优化方法和电路设计;通过RTL代码的具体实现,然后进行RTL级功能仿真验证设计模块的正确性和初步的性能评估;最后通过硬件开销评估确定设计在芯片实现的可行性。根据实验结果表明,本文采用两级页表结构缓冲,分别采用4条目PGDCache和32条目PMD Cache,采用LRU替换算法,实现了 97.55%和99.53%的较高命中率和较小的硬件开销。通过仿真验证证明了该电路设计的功能正确性和可行性,相比上一代申威处理器性能上有所提升。
尚小京[6](2020)在《基于时序推测型SRAM的近阈值Cache优化设计》文中研究说明随着现代处理器集成晶体管数量的不断增加,处理器性能的进一步提高越来越受限于能耗与散热之间的矛盾。另一方面,对于采用电池供电的移动终端类应用和对能耗更加敏感的物联网应用,如何在满足性能需求的前提下尽可能的降低能耗已经成为设计者首先需要面对的挑战。为了降低系统的能耗以减缓上述矛盾,工业界和学术界将电路的工作电压向下延伸至近阈值附近。然而在近阈值低电压工作环境下,组成系统中高速缓存(Cache)的主体:静态随机存储器(SRAM)阵列中的部分存储单元(Bitcell)在位线(Bitline)放电结束后两根位线之间的压差无法在规定时间内达到对应敏感放大器的失调电压,这种时序错误的发生导致数据无法正确地被敏感放大器采样,从而劣化整个系统的性能。时序推测技术可以通过对数据进行多次采样以检测时序错误并通过延长位线放电时间将其纠正,本论文基于交叉感知型时序推测SRAM(CS-SRAM)提出了一种时序推测Cache(TS Cache)。直接使用时序推测型CS-SRAM阵列构建的TS Cache设计虽然可以检测并纠正由于电压降低而带来的时序错误,但修复这些错误所依赖的额外位线放电延时会对整体系统性能带来负面影响。为此,本论文在此基础上提出了基于重用的重映射时序推测Cache(RRS Cache)优化设计以缓解低电压工作环境下TS Cache性能较低的问题。RRS Cache中提出的优化机制包括:第一,Cache行(Cacheline)重映射机制尽可能的将时序错误集中映射到少数Cache行中,从而减少Cache中受到时序错误影响的Cache行数量;第二,基于重用的Cache填充替换策略。该策略以读请求在系统中有更高的重要性为根据,优先将无错资源分配给有较高可能性被读请求所重用的数据,从而进一步降低读访问遇到时序错误的几率。本文对八种不同的近阈值Cache方案进行性能、面积、功耗等多方面的横向对比。与TS Cache设计方案相比,RRS L1 Cache的额外功耗上升了0.2%,面积增加了1.76%,而其访问平均延时降低9.8%;RRS L2 Cache的额外功耗则下降了13.5%,面积上升了2.54%,访问延时降低9.4%;此外RRS Cahce整体系统的性能较TS Cache提升9.8%,达到了理想Cache方案(无任何时序错误)性能的98.6%,同时也是剩余的七种方案中性能最高的Cache方案。
尉红梅[7](2020)在《面向神威太湖之光的隐式并行语言研究及编译优化设计》文中指出异构众核处理器成为近年来构建超级计算机的首选,然而从多核架构到众核架构发展,在带来性能显着提升的同时,也给高性能计算应用带来了新的挑战。由于计算架构的跨代发展和应用设计之间出现了脱节,使得众核架构面临着应用移植难、开发难、优化难的应用难题。神威太湖之光超级计算机系统全部由国产申威众核处理器组成,众核应用难问题对国产众核处理器而言更加严峻,如何针对国产众核的体系结构,设计适应它的并行语言,并进行优化实现,能让太湖之光系统更加通用、发挥更大的应用效益,这就是本课题想去尝试解决的问题。本文以申威26010众核处理器和神威太湖之光计算机系统为主要研究对象和优化平台,研究主从共享内存的融合众核架构上支撑应用高效移植和开发的隐式并行语言设计和编译支撑及优化技术,主要从以下三个方面开展了研究工作,并取得了一定的技术突破和创新:1)提出了面向异构众核处理器架构的Open ACC*语言设计。本文从分析主流众核架构内存模型差异和Open ACC标准语言文本在申威26010众核处理器上实现面临的问题入手,提出了一种异构众核处理器架构的存储抽象模型;同时基于该存储抽象模型,围绕如何利用和描述异构众核处理器片上高速局存提出了一系列的语言功能设计,为描述和利用片上私有局存、优化众核数据传输、挖掘异构融合众核架构特点提供了一整套语言功能。2)提出了面向太湖之光的异构编译器结构设计,包括异构融合编译器、加速线程支撑库、异构运行加载器等组成,面对主核、从核不同的指令和结构特点,可在编译、链接多个层面可以实现异构融合优化;提出了基于仿射分析的数据分布分析技术、异构协作的数据分布处理等技术,为Open ACC*应用程序的高效运行提供了有力支撑。3)提出了一系列编译优化技术。针对申威26010众核处理器中主从核之间的结构差异、丰富的存储层次、从核精简的结构、片上局存的稀缺等主要矛盾和优化难点,提出了针对申威26010众核处理器主核存储结构的访存编译优化技术、面向异构众核结构特征的编译优化技术、以及面向Open ACC*的多模式访存优化技术,为提升神威太湖之光计算机系统中程序性能提供了有效的优化手段。基于本文的成果,使用CAM-SE、SWLBM两道实际应用课题和SPEC ACCEL V1.0中15道课题在神威太湖之光计算机系统中进行了应用移植和优化效果验证工作,测试结果表明,本文所提出的Open ACC*编程语言、编译器设计、编译优化技术是正确和有效的,可以满足相当一部分应用的众核编程、移植和优化的需求,支撑应用在神威太湖之光计算机系统上高效运行。
张婕[8](2020)在《基于Cortex-R8的CPU子系统功能验证及性能优化》文中认为随着人工智能时代的到来,移动电子设备对芯片的数据处理能力提出了新的要求,在追求高速、高带宽、高性能的市场需求的引导下,多核技术逐渐从高性能计算机系统复用到移动电子设备的芯片中。芯片上CPU个数的增加,也意味着每个CPU的性能都可能成为影响整个芯片性能的短板,而目前业内的CPU性能分析工作主要还是在流片后进行,即通过在软件层面的测试来获取整个系统的性能数据。若此刻发现性能不合格,将很难及时定位制约性能瓶颈的关键点,不仅修复难度大而且耗费时间长,更容易造成巨大的经济损失。因此,如何充分发挥每个CPU的性能以避免出现单个CPU的性能短板越来越成为芯片设计过程中的挑战,各大芯片开发厂商为保证产品质量,也逐渐开始在流片前对CPU进行性能分析及优化。对于验证人员而言,不仅需要熟悉所验模块的功能,也需要熟悉可能影响到该模块性能的各种因素,以便在流片前对芯片进行性能分析,及时发现和补足性能短板。本文在对5G基带芯片中常用的ARM Cortex-R8多核高性能实时处理器的研究基础上,完成了Cortex-R8处理器和二级缓存的功能完备性验证工作,并在流片前对CPU子系统进行了性能分析,最终给出可行的优化方案。首先,本文分析了CortexR8处理器和CPU子系统的架构,介绍了系统的功能及性能,对影响CPU子系统数据传输性能的存储系统做了深入研究。然后根据对CPU子系统功能和性能的理解,搭建了基于UVM的So C验证平台,并在验证环境中集成了用于C语言和汇编语言联合验证的armcc编译器。随后通过创建C语言联合汇编语言的定向测试用例和应用外部验证IP发出的随机测试激励,完成了对Cortex-R8处理器和二级缓存所有测试功能点的验证。为保证CPU子系统数据传输正常,本文还针对存储系统中各模块数据交互场景添加了测试用例。在开展性能分析工作之前,本文对CPU子系统进行了性能参数的提取,结合所提取的参数搭建了基于PMU的自动化性能监测平台。该平台启用了ARMv7架构中的性能监测模块PMU,引用了OCP VIP作为CPU子系统的模拟外部主机,并使用脚本语言实现了性能数据的自动化处理。最后,本文启用该监测平台,分别对CPU子系统在模拟的典型场景和复杂场景下进行监测,根据监测结果进行了分析与优化。本文最终实现了Cortex-R8处理器和二级缓存的功能完备性验证,通过回归测试使代码覆盖率和功能覆盖率达到了100%。随后,本文启用所搭建的自动化性能监测平台对CPU子系统的数据传输行为进行监测,以二级缓存为例提出优化方案,最终使CPU子系统内部数据平均传输延时缩短了35.97%,最大吞吐量增加了39.34%。优化后的二级缓存以及整个CPU子系统已完成交付,并流片成功,此外,本文搭建的基于PMU的处理器性能监测平台也被复用至其他类似的项目中。
操开波[9](2020)在《多核微处理器缓存一致性研究》文中研究表明随着计算机技术的发展,对计算机的性能要求越来越高,计算机的核心频率越来越高,集成电路制造技术和芯片功耗等问题,使得通过增加内核的核心频率来提高芯片性能的方法遭遇到极大的挑战。在多核处理器系统中,为确保各个内核中副本数据相同,必须采用高速缓存一致性协议维护数据的一致性。基于侦听的一致性协议设计简单,但是一致性维护效率低、总线通信量较大;基于目录的一致性协议通信量小、可扩展性好,但是目录存储面积大。随着处理器内核数量的增多,侦听和目录一致性协议面临功耗、面积、延迟和通信量等问题,本文主要研究适用于多核处理器的缓存一致性协议模型。本文在分析传统缓存一致性协议的基础上,提出一种融合总线侦听和目录结构的混合一致性协议。该一致性协议采用分层结构,节点内部内核通过共享总线传输Cache行状态消息,采用基于MOESI(Modified Owned Exclusive Share Invalid)的侦听一致性协议;节点之间采用片上互联结构,设计一个目录结构控制器传输状态消息,节点之间采用基于目录的一致性协议。然后分析混合一致性协议中,内核读写数据一致性的维护过程和DMA(Direct Memory Access)设备读写数据的一致性维护过程。在GEM5(General Execution-driven Multiprocessor Simulator)模拟器中搭建基于SLICC(Specification Language for Implementing Cache Coherence)脚本语言的混合一致性协议模型,通过编译器生成Python脚本,与Ruby模块中内存组件相连接,形成完整的缓存一致性协议模型。最后使用并行测试程序集Splash2(Stanford Parallel Applications for Shared Memory)在GEM5模拟器中进行混合一致性协议模型的性能模拟仿真。模拟侦听、目录和混合协议在FS(Full-System)模式和SE(Syscall Emulation)模式下的性能差距,结果表明混合协议能提高Cache块的命中率,有效降低测试程序的运行时间,特别是内核数量为32个时,运行时间平均减小8%。模拟混合协议在不同内核数量的Cache块命中率和程序运行时间,结果表明当内核数量为32个时,程序的Cache块命中率较高、运行时间最高减小8%,但是随着内核数量继续增多,Cache块的总缺失和有效时间基本不再减小。比较混合协议在不同目录块和不同Cache块大小时的Cache块命中率和性能差距,结果表明目录块和Cache块的增大能一定程度上提高测试程序Cache块的命中率,并减小运行时间,但是目录结构太大、Cache块较大,使得高速缓存系统愈加复杂和面积规模庞大,导致通信量和延迟增大。
魏云蛟[10](2020)在《国产处理器监听广播协议部件的优化和验证》文中研究指明多核多处理器技术的诞生使得处理器在更短的时间周期内执行更多的任务,极大地提高了处理器的性能,而Cache一致性是实现多核多处理器的关键技术。Cache一致性决定着处理器的正确性和性能,在国内外受到企业和研究所的广泛关注。缓存一致性协议——MESIF协议最早由Intel研究院提出。一致性协议在硬件上根据监听请求的发出者不同,将实现方式分为源方监听和目录监听。根据回写主存的策略的不同可以分为写穿透和回写。根据写数据更新其他处理器Cache的方式,协议可以分为写更新和写置无效。本文对上述几种方式进行了分析和对比。本文分析了某国产服务器处理器对MESIF协议的实现方式,对处理器中一致性处理模块(CPM,Coherent Processing Module)进行了验证。使用SystemVerilog语言搭建了源方监听协议的四路处理器直连模型,对CPM进行各种场景的测试,查找设计瓶颈,提出优化方案,优化芯片性能。仿真结果表明优先级轮转的设计方式提高了处理器处理冲突事务的公平性;通过增加流水线的方式有效提高了事务的吞吐率;通过扩大接收数据缓冲的容量,避免了协议死锁的发生。本文的具体工作和优化点体现在:(1)分析了MESIF协议的主流实现方式,分析对比了源方监听和目录监听两种实现方式的差别和适用场景,写更新和写无效两种方式的优缺点,写穿透和回写策略的优缺点。(2)研究了某国产服务器处理器对MESIF协议的实现,围绕该处理器中一致性处理模块CPM,搭建模拟验证环境。模拟了四路处理器直连下的一致性协议的实现场景。(3)提出了CPM的验证需求,使用PSL语言描述了CPM中一致性流程的实现序列。搭建不同场景对CPM进行焦点验证,以功能覆盖率和代码覆盖率为指标,最终实现覆盖率的双百。(4)通过修改验证环境,构建特殊的场景对CPM进行性能测试,查询设计瓶颈,提出优化方案,优化芯片性能。通过分化引擎的方式,提高了一致性事务的吞吐率;通过改变同地址事务的处理机制,优化了不同处理器对同地址事务处理的公平性;复现设计中的错误场景,通过增加防死锁的机制,保证了设计的正确性。本文所运用的研究方法对今后多路直连分布式存储访问架构处理器的实现具有很好的参考和应用价值。
二、Cache性能和优化的研究(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、Cache性能和优化的研究(论文提纲范文)
(1)面向申威1621多核处理器的BLAS3扩展函数优化技术(论文提纲范文)
摘要 |
abstract |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.2.1 BLAS库3 级函数的算法研究 |
1.2.2 不同硬件平台的BLAS库3 级函数的优化技术 |
1.2.3 不同国产处理器的相关特性 |
1.3 课题来源 |
1.4 论文主要研究内容及贡献 |
1.5 论文结构安排 |
2 申威1621 多核处理器的体系结构 |
2.1 引言 |
2.2 芯片结构与存储结构 |
2.3 优势发挥及平台局限性 |
2.4 本章小结 |
3 BLAS3 级函数及优化方法 |
3.1 BLAS3 扩展函数介绍 |
3.1.1 BLAS3 函数类型及存储方式介绍 |
3.1.2 BLAS3 函数整体模块调用计算介绍 |
3.1.3 BLAS3 函数中的异常处理和精度调试 |
3.2 BLAS3 扩展函数算法级优化 |
3.2.1 Cache分块与分片 |
3.2.2 数据拷贝 |
3.2.3 循环计算优化 |
3.3 BLAS3 扩展函数指令级优化 |
3.3.1 寄存器分配 |
3.3.2 SIMD向量化 |
3.3.3 数据预取 |
3.3.4 指令选择与指令重排 |
3.3.5 流水并行和指令调度 |
3.4 BLAS3 扩展函数线程级优化 |
3.5 本章小结 |
4 GEMM在申威1621 上的实现与优化 |
4.1 GEMM的算法实现 |
4.1.1 GEMM在申威1621 上C代码的实现 |
4.1.2 GotoBLAS GEMM在申威1621 上的实现与算法分析 |
4.1.3 算法优化 |
4.1.4 不同算法模式的对比测试 |
4.2 GEMM的 SIMD向量化优化具体方案 |
4.2.1 数据重排 |
4.2.2 数据在向量化中的对齐处理 |
4.2.3 浮点寄存器分配 |
4.2.4 对Cache行选择计算数据块 |
4.2.5 对向量化选择计算数据块 |
4.2.6 选择不同计算数据块在Cache与向量化中的性能对比测试 |
4.2.7 流水并行优化方法 |
4.2.8 流水并行性能测试 |
4.3 GEMM的多核多线程实现 |
4.3.1 多线程的整体流程 |
4.3.2 多线程的优化方法 |
4.4 本章小结 |
5 性能测试与分析 |
5.1 测试环境 |
5.2 实验结果与分析 |
5.2.1 申威1621 单核GEMM三个版本性能测试 |
5.2.2 申威1621与Intel Haswall平台单核性能加速比对比测试 |
5.2.3 申威1621 多核多线程性能测试 |
5.3 本章小结 |
6 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
附录 |
致谢 |
(2)基于申威1621平台BLAS一、二级函数优化研究(论文提纲范文)
摘要 |
abstract |
1 绪论 |
1.1 申威1621 处理器 |
1.2 BLAS库 |
1.3 BLAS库应用前景 |
1.4 BLAS库优化现状 |
1.5 论文主要研究内容及目的 |
1.6 本文结构 |
2 程序优化方法 |
2.1 并行优化 |
2.2 核心代码优化 |
2.2.1 循环展开 |
2.2.2 循环展开因子 |
2.2.3 指令重排 |
2.3 访存优化 |
2.4 数据分块 |
2.5 SIMD指令优化 |
2.6 本章小结 |
3 BLAS一级函数优化 |
3.1 BLAS一级函数介绍 |
3.2 BLAS1 函数的计算方式 |
3.3 优化过程 |
3.3.1 循环展开的优化 |
3.3.2 SIMD向量化优化 |
3.3.3 数据预取 |
3.3.4 指令重排优化 |
3.3.5 并行化优化 |
3.4 本章小结 |
4 BLAS二级函数优化 |
4.1 BLAS二级特点分析 |
4.2 BLAS二级函数计算方式 |
4.3 GEMV函数优化过程 |
4.3.1 循环展开 |
4.3.2 指令优化 |
4.3.3 指令重排 |
4.3.4 小规模向量数据的内存优化 |
4.4 本章小结 |
5 测试与分析 |
5.1 测试方法 |
5.2 测试平台 |
5.3 BLAS一级函数优化效果及分析 |
5.3.1 单核优化效果测试 |
5.3.2 多核优化效果测试 |
5.4 BLAS二级函数优化效果及分析 |
5.5 本章小结 |
6 总结与展望 |
6.1 本文总结 |
6.2 存在问题与研究展望 |
参考文献 |
附录:攻读学位期间发表的学术论文以及参与项目 |
致谢 |
(3)云计算平台虚拟机端缓存优化关键技术研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 云计算平台的现状和发展趋势 |
1.1.1 云计算平台应用的需求 |
1.1.2 云计算平台的技术特点 |
1.1.3 云计算平台的快速发展 |
1.2 云计算平台的I/O需求分析 |
1.2.1 数据密集型应用场景 |
1.2.2 虚拟化带来的I/O需求 |
1.3 云计算平台中SSD缓存的现状和挑战 |
1.3.1 基于Flash闪存技术的SSD |
1.3.2 云计算平台中使用SSD缓存 |
1.3.3 SSD缓存面临的挑战性问题 |
1.4 本文工作 |
1.4.1 感知COW虚拟磁盘的数据缓存策略 |
1.4.2 协同SSD缓存的虚拟机文件系统一致性策略 |
1.4.3 面向QoS需求的R-MRC曲线构建和空间分配策略 |
1.5 论文组织 |
第二章 相关研究 |
2.1 基于SSD的缓存 |
2.1.1 混合磁盘技术 |
2.1.2 SSD缓存技术 |
2.2 SSD缓存数据管理技术 |
2.2.1 数据缓存策略 |
2.2.2 数据替换策略 |
2.2.3 数据写回策略 |
2.2.4 SSD缓存内部优化 |
2.2.5 小结 |
2.3 SSD缓存空间分配技术 |
2.3.1 空间分配策略 |
2.3.2 MRC曲线构建策略 |
2.3.3 小结 |
第三章 感知COW虚拟磁盘的数据缓存策略 |
3.1 研究背景与动机 |
3.1.1 COW虚拟磁盘分析 |
3.1.2 缓存管理层次分析 |
3.1.3 为COW虚拟磁盘提供SSD缓存的新挑战 |
3.2 COWCache系统设计 |
3.2.1 感知COW虚拟磁盘的缓存架构 |
3.2.2 细粒度的元数据缓存与合并写 |
3.2.3 解耦合Copy-on-Write机制 |
3.3 系统实现 |
3.3.1 虚拟缓存映射表 |
3.3.2 感知COW虚拟磁盘 |
3.4 性能测试 |
3.4.1 实验环境 |
3.4.2 微基准程序测试 |
3.4.3 应用程序测试 |
3.5 本章小结 |
第四章 协同SSD缓存的虚拟机文件系统一致性策略 |
4.1 研究背景与动机 |
4.1.1 日志文件系统 |
4.1.2 日志机制下的SSD缓存挑战 |
4.2 JCache系统设计 |
4.2.1 感知日志机制的缓存架构 |
4.2.2 缓存即日志区 |
4.2.3 逻辑缓存 |
4.2.4 恢复 |
4.3 性能测试 |
4.3.1 系统实现 |
4.3.2 实验环境 |
4.3.3 微基准程序测试 |
4.3.4 应用程序测试 |
4.4 本章小结 |
第五章 面向QoS需求的R-MRC曲线构建和空间分配策略 |
5.1 研究背景与动机 |
5.2 R-MRC曲线设计 |
5.2.1 R3 距离 |
5.2.2 RWS栈算法 |
5.2.3 重用数据树算法 |
5.3 缓存空间分配 |
5.3.1 问题描述 |
5.3.2 以命中率为QoS目标的优化设计 |
5.3.3 以I/O延迟为QoS目标的优化设计 |
5.4 性能测试 |
5.4.1 实验环境 |
5.4.2 R-MRC与 MRC的对比 |
5.4.3 命中率实验结果 |
5.4.4 I/O延迟实验结果 |
5.5 本章小结 |
第六章 结论与展望 |
6.1 工作总结 |
6.2 研究展望 |
致谢 |
参考文献 |
作者在学期间取得的学术成果 |
(4)基于“神威·太湖之光”的分子动力学算法优化(论文提纲范文)
摘要 |
ABSTRACT |
文中使用的缩略词和符号 |
第一章 绪论 |
1.1 研究的背景和意义 |
1.2 研究的现状和挑战 |
1.3 本文研究内容和创新点 |
1.4 本文的组织结构和章节安排 |
第二章 背景 |
2.1 分子动力学模拟 |
2.1.1 初始化 |
2.1.2 邻域索引 |
2.1.3 势函数的计算 |
2.1.4 积分 |
2.2 神威·太湖之光 |
2.2.1 总体架构 |
2.2.2 SW26010处理器 |
2.2.3 编程模型 |
2.3 本章小结 |
第三章 短程势函数计算中的优化 |
3.1 L-J势的优化 |
3.1.1 软件Cache方法 |
3.1.2 单端更新方法 |
3.1.3 寄存器通信归约 |
3.1.4 向量化 |
3.2 Tersoff势的优化 |
3.2.1 混合内存更新方法 |
3.2.2 向量化 |
3.3 AMBER势的优化 |
3.3.1 无邻接表方法 |
3.3.2 自适应的副本分配 |
3.3.3 参数剖面 |
3.3.4 向量短路 |
3.3.5 格点-粒子截断过滤器 |
3.3.6 AMBER的短程力优化后的流程 |
3.4 本章小结 |
第四章 邻域索引构造的优化 |
4.1 邻接表构造的优化 |
4.2 格点索引构造的优化 |
4.2.1 基于排序的方法 |
4.2.2 增量格点索引构造方法 |
4.3 本章小结 |
第五章 基于神威平台的通用模块优化 |
5.1 向量化的数学库 |
5.2 软件Cache的优化 |
5.2.1 使用宏的封装 |
5.2.2 预处理DMA描述符 |
5.2.3 汇编级别实现 |
5.2.4 使用原子锁的更新CACHE |
5.3 从核计算时性能计数器采样模块的优化 |
5.3.1 数据结构 |
5.3.2 设计模式 |
5.3.3 使用例子 |
5.4 本章小结 |
第六章 实验结果 |
6.1 LAMMPS中L-J势的性能测试 |
6.1.1 单节点测试 |
6.1.2 扩展性测试 |
6.2 LAMMPS中Tersoff势的性能测试 |
6.2.1 单节点测试 |
6.2.2 扩展性测试 |
6.3 AMBER的性能测试 |
6.4 ESMD的性能测试 |
6.4.1 单节点测试 |
6.4.2 扩展性测试 |
6.5 SWCache的测试 |
6.5.1 MiniFE中的测试 |
6.5.2 分子动力学软件中的测试 |
6.6 本章小结 |
第七章 总结与展望 |
7.1 总结 |
7.2 展望 |
参考文献 |
致谢 |
攻读学位期间发表的论文 |
攻读学位期间参加的科研工作 |
攻读学位期间获得的奖励 |
相关的开源项目 |
图表索引 |
学位论文评阅及答辩情况表 |
(5)申威处理器页表结构Cache的优化研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究历史及现状 |
1.3 本文主要工作 |
1.4 本文结构安排 |
第二章 内存管理单元概述 |
2.1 高速缓冲概述 |
2.1.1 基本工作原理 |
2.1.2 基本组织结构 |
2.1.3 淘汰算法和替换策略 |
2.1.4 容量和行大小 |
2.2 页式存储管理概述 |
2.2.1 虚拟内存 |
2.2.2 页式存储管理 |
2.2.3 多级页表及页表遍历 |
2.2.4 虚拟化页表遍历 |
2.3 内存管理单元概述 |
2.3.1 介绍 |
2.3.2 TLB |
2.3.2.1 TLB工作原理 |
2.3.2.2 提高TLB命中率 |
2.3.2.3 TLB缺页处理 |
2.3.3 内存管理单元缓冲 |
2.3.3.1 页表缓冲 |
2.3.3.2 转换缓冲 |
2.4 本章小结 |
第三章 申威处理器MMU Cache电路设计 |
3.1 申威处理器内存管理单元结构介绍 |
3.1.1 旧版本MMU介绍 |
3.1.2 本文设计MMU介绍 |
3.2 TLB单元设计 |
3.2.1 一级TLB |
3.2.2 二级TLB |
3.3 页表结构缓冲单元设计 |
3.3.1 MMU Cache参考因素 |
3.3.1.1 索引方式 |
3.3.1.2 分区方式 |
3.3.1.3 替换算法 |
3.3.1.4 容量大小 |
3.3.1.5 覆盖范围 |
3.3.1.6 复杂程度 |
3.3.2 页表结构缓冲设计 |
3.4 TLB处理队列模块 |
3.4.1 主要作用 |
3.4.2 控制状态机实现 |
3.5 硬件Page Walk优化 |
3.5.1 硬件Page Walk控制状态机的设计 |
3.5.2 状态机实现硬件Page Walk的优化 |
3.6 MMU刷新 |
3.7 本章小结 |
第四章 实验测试与分析 |
4.1 实验测试 |
4.1.1 实验方案 |
4.1.2 追踪记录 |
4.1.3 Cache一致性 |
4.1.4 实验数据分析 |
4.2 集成电路前端设计流程 |
4.2.1 RTL级功能仿真 |
4.2.2 内存管理单元功能验证 |
4.3 硬件开销评估 |
4.3.1 评估方法 |
4.3.2 评估结果 |
4.4 本章小结 |
第五章 全文总结与展望 |
5.1 全文总结 |
5.2 后续工作展望 |
致谢 |
参考文献 |
(6)基于时序推测型SRAM的近阈值Cache优化设计(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 SRAM存储单元的电路优化 |
1.2.2 Cache的架构优化设计 |
1.3 论文的主要工作 |
1.4 论文的组织结构 |
第二章 SRAM结构与Cache微架构 |
2.1 传统SRAM阵列 |
2.2 DS-SBVR型 SRAM阵列 |
2.2.1 DS-SBVR的原理 |
2.2.2 DS-SBVR的实现 |
2.3 CS(Cross Sensing)型SRAM阵列 |
2.3.1 CS-SRAM的原理 |
2.3.2 CS-SRAM的实现 |
2.4 Cache寻址原理以及部分微架构参数 |
2.5 本章小结 |
第三章 采用时序推测型SRAM阵列的Cache设计 |
3.1 部分有代表性的近阈值Cache设计方案 |
3.1.1 ECC相关设计 |
3.1.2 ZCAL Cache |
3.1.3 Mixed-Cell Cache |
3.1.4 Concertina Cache |
3.2 基于CS-SRAM的时序推测Cache设计 |
3.2.1 L1 TS Cache |
3.2.2 L2 TS Cache |
3.3 本章小结 |
第四章 RRS Cache的进一步优化 |
4.1 TS Cache存在的性能缺陷 |
4.2 Cache行重映射技术 |
4.2.1 Cache行重映射技术原理 |
4.2.2 Cache行重映射技术编码过程 |
4.2.3 Cache行重映射技术实现 |
4.2.4 L1 RRS Cache中的Cache行重映射 |
4.3 基于重用的Cache填充、替换策略 |
4.4 本章小结 |
第五章 RRS Cache性能、面积、能耗评估与对比分析 |
5.1 实验环境以及具体参数 |
5.1.1 实验环境 |
5.1.2 具体参数 |
5.2 实验对比结果 |
5.2.1 系统整体性能对比 |
5.2.2 Cache面积对比 |
5.2.3 Cache能量对比 |
5.2.4 Cache设计综合对比 |
5.3 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
致谢 |
参考文献 |
攻读硕士学位期间的研究成果 |
(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 研究内容及方法 |
1.3.2 实验平台 |
第二章 面向异构众核处理器架构的OpenACC*语言设计 |
2.1 异构众核处理器架构存储抽象模型研究 |
2.1.1 典型众核架构存储模型分析 |
2.1.2 适应异构众核处理器架构的存储模型设计 |
2.2 面向异构众核处理器架构的OpenACC*语言设计 |
2.2.1 OpenACC*执行模型 |
2.2.2 针对融合的众核处理器架构的语言功能设计 |
2.2.3 提供对通信死锁检测的支持 |
2.3 本章小结 |
第三章 面向异构众核处理器架构的编译器架构研究 |
3.1 面向异构众核处理器架构的编译框架设计 |
3.1.1 异构众核融合编译架构 |
3.1.2 异构众核融合编译器基本组成和工作原理 |
3.1.3 面向异构众核的加速线程编程模型 |
3.1.4 异构众核程序加载器 |
3.2 OpenACC*在神威太湖之光系统上的实现机制研究 |
3.2.1 基于仿射分析的数据分布分析技术 |
3.2.2 异构协作的数据重分布处理技术 |
3.2.3 数据规模自适应的空间重分布技术 |
3.2.4 异构程序主从执行模式实现技术 |
3.2.5 基于运行时的通信死锁检测技术 |
3.3 本章小结 |
第四章 异构众核编译优化技术研究 |
4.1 针对主核存储层次结构的访存编译优化 |
4.1.1 代价模型约束的循环级数据预取优化 |
4.1.2 局部性指导的自动流式不可Cache优化 |
4.1.3 实验结果 |
4.2 针对异构众核结构特征的编译优化技术 |
4.2.1 动静结合的循环级指令调度优化 |
4.2.2 数据访问的自适应指令代理优化 |
4.3 面向OpenACC*的多模式访存优化技术 |
4.3.1 多点融合的访存聚合优化 |
4.3.2 访存模式指导的离散访存优化 |
4.3.3 动静结合的数据重用优化 |
4.4 应用综合优化效果 |
4.4.1 CAM-SE核心段移植优化效果 |
4.4.2 SWLBM课题移植优化效果 |
4.4.3 SPEC ACCEL基准测试课题移植优化效果 |
4.5 本章小结 |
第五章 总结与展望 |
5.1 本文工作总结 |
5.2 研究展望 |
参考文献 |
致谢 |
攻读博士学位期间已发表或录用的论文和其他成果 |
插图索引 |
表格索引 |
(8)基于Cortex-R8的CPU子系统功能验证及性能优化(论文提纲范文)
摘要 |
ABSTRACT |
符号对照表 |
缩略语对照表 |
第一章 绪论 |
1.1 选题背景及意义 |
1.2 研究现状 |
1.2.1 基带芯片中CPU内核的发展现状 |
1.2.2 CPU验证的研究现状 |
1.3 研究内容 |
1.4 章节安排 |
第二章 Cortex-R8 处理器及CPU子系统架构分析 |
2.1 Cortex-R8 处理器架构分析 |
2.1.1 Cortex-R8 处理器架构及功能 |
2.1.2 Cortex-R8 处理器性能概述 |
2.2 CPU子系统架构简介 |
2.2.1 SRAM模块简介 |
2.2.2 CPU No C模块简介 |
2.3 CPU子系统中存储系统模型提取 |
2.3.1 存储系统分级 |
2.3.2 存储系统性能参数量化 |
2.3.3 二级缓存参数分析 |
2.4 CPU子系统数据通信机制 |
2.4.1 AMBA总线协议 |
2.4.2 OCP通信协议 |
2.5 本章小节 |
第三章 基于Cortex-R8 内核的CPU子系统功能验证 |
3.1 验证流程及验证平台的搭建 |
3.1.1 验证流程 |
3.1.2 验证平台的搭建 |
3.1.3 验证功能点的提取 |
3.2 基于UVM环境的测试用例仿真 |
3.2.1 Cortex-R8 处理器属性验证 |
3.2.2 Cortex-R8 处理器中断模式的验证 |
3.2.3 处理器内存体系数据交互验证 |
3.3 回归测试与覆盖率分析 |
3.3.1 回归测试结果 |
3.3.2 覆盖率分析 |
3.4 本章小节 |
第四章 基于PMU的自动化性能监测平台的实现 |
4.1 CPU子系统性能参数提取 |
4.1.1 平均传输延时 |
4.1.2 吞吐量 |
4.2 PMU性能监测平台的搭建 |
4.2.1 PMU计数器及数据获取方法 |
4.2.2 PMU获取数据的后处理 |
4.3 OCP VIP的引入 |
4.3.1 Cortex-R8 作为从机的数据通路 |
4.3.2 VIP的集成与功能实现 |
4.3.3 监测平台的完善及自动化实现 |
4.4 本章小结 |
第五章 性能参数的分析及优化 |
5.1 典型场景下延时的分析与优化 |
5.2 复杂场景下延时的分析与优化 |
5.3 吞吐量的分析与优化 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
致谢 |
作者简介 |
(9)多核微处理器缓存一致性研究(论文提纲范文)
摘要 |
ABSTRACT |
符号对照表 |
缩略语对照表 |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究情况介绍 |
1.2.1 国外研究现状 |
1.2.2 国内研究现状 |
1.3 论文的研究工作 |
1.4 论文结构 |
第二章 高速缓存一致性协议 |
2.1 高速缓存不一致性原因分析 |
2.2 高速缓存一致性协议的处理机制 |
2.2.1 一致性协议的写策略 |
2.2.2 一致性协议的状态消息传播方式 |
2.2.3 Cache的映射方式 |
2.3 基于侦听的高速缓存一致性协议 |
2.3.1 MESI侦听一致性协议 |
2.3.2 MOESI和MESIF侦听一致性协议 |
2.3.3 Dragon一致性协议 |
2.4 基于目录的高速缓存一致性协议 |
2.5 其他结构的高速缓存一致性协议 |
2.5.1 基于Token结构的高速缓存一致性协议 |
2.5.2 Hammer一致性协议 |
2.6 提高缓存一致性协议性能的方法 |
2.7 本章小结 |
第三章 基于侦听和目录的混合一致性协议 |
3.1 混合一致性协议的分层结构 |
3.2 基于MOESI的总线侦听协议 |
3.2.1 MOESI侦听协议的模型 |
3.2.2 侦听协议控制器的设计 |
3.3 混合一致性协议中的目录协议 |
3.3.1 目录结构的设计 |
3.3.2 目录存储器的设计 |
3.4 读写数据一致性的维护过程 |
3.4.1 内核读数据的一致性维护过程 |
3.4.2 内核向Cache写数据的一致性维护过程 |
3.4.3 DMA读写数据的一致性维护 |
3.5 混合一致性协议的异常处理机制 |
3.5.1 一致性协议的死锁情况 |
3.5.2 一致性协议的活锁情况 |
3.6 本章小结 |
第四章 混合一致性协议的性能测试 |
4.1 模拟器GEM5简介 |
4.2 并行测试程序SPLASH2 |
4.3 混合一致性协议的实现过程 |
4.3.1 SLICC生成缓存一致性协议模型 |
4.3.2 一致性协议的操作状态 |
4.4 基于X86和ARM两种内核系统的一致性协议性能测试 |
4.4.1 侦听、目录和混合一致性协议的性能测试比较 |
4.4.2 混合一致性协议不同内核数量的性能测试 |
4.4.3 混合一致性协议不同目录块容量的性能测试 |
4.4.4 混合一致性协议不同Cache行容量的性能测试 |
4.5 本章小结 |
第五章 本文总结 |
参考文献 |
致谢 |
作者简介 |
(10)国产处理器监听广播协议部件的优化和验证(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 课题的研究背景和意义 |
1.2 国内外研究现状 |
1.2.1 Cache一致性协议 |
1.2.2 一致性协议的验证方法 |
1.3 论文研究内容 |
1.4 论文组织结构 |
第二章 MESIF协议的介绍 |
2.1 MESIF协议状态的迁移 |
2.2 一致性协议的实现方式 |
2.2.2 写穿透和写回 |
2.2.3 写更新和写置无效 |
2.3 本章小结 |
第三章 MESIF协议在国产服务器处理器中的实现 |
3.1 处理器间一致性实现原理 |
3.1.1 片间请求的几种类型 |
3.1.2 一致性流程简述 |
3.2 片间一致性处理部件CPM |
3.2.1 Tracker和冲突列表 |
3.2.2 IMT条目和数据Buffer |
3.2.3 流水线 |
3.3 本章小结 |
第四章 CPM验证环境搭建 |
4.0 CPM的验证需求 |
4.1 验证环境的总体结构 |
4.1.1 Cache代理的设计 |
4.1.2 其他结构的设计 |
4.2 验证环境的关键设计 |
4.3 基于覆盖率导向的验证 |
4.3.1 代码覆盖率 |
4.3.2 功能覆盖率和验证内容 |
4.4 验证平台对一致性的验证 |
4.5 本章小结 |
第五章 验证指导的CPM优化 |
5.1 冲突列表公平性的优化 |
5.1.1 实验方法 |
5.1.2 实验结果和分析 |
5.2 吞吐率的优化 |
5.2.1 实验方法 |
5.2.2 实验结果和分析 |
5.3 防死锁机制的设计 |
5.3.1 死锁问题的预测和发现 |
5.3.2 防死锁模块设计和验证 |
5.4 本章小结 |
结论 |
参考文献 |
致谢 |
四、Cache性能和优化的研究(论文参考文献)
- [1]面向申威1621多核处理器的BLAS3扩展函数优化技术[D]. 李爽. 中原工学院, 2021(08)
- [2]基于申威1621平台BLAS一、二级函数优化研究[D]. 李浩然. 中原工学院, 2021(08)
- [3]云计算平台虚拟机端缓存优化关键技术研究[D]. 付建宇. 国防科技大学, 2020(01)
- [4]基于“神威·太湖之光”的分子动力学算法优化[D]. 段晓辉. 山东大学, 2020(11)
- [5]申威处理器页表结构Cache的优化研究与实现[D]. 杜鑫. 电子科技大学, 2020(08)
- [6]基于时序推测型SRAM的近阈值Cache优化设计[D]. 尚小京. 东南大学, 2020(01)
- [7]面向神威太湖之光的隐式并行语言研究及编译优化设计[D]. 尉红梅. 上海交通大学, 2020(01)
- [8]基于Cortex-R8的CPU子系统功能验证及性能优化[D]. 张婕. 西安电子科技大学, 2020(05)
- [9]多核微处理器缓存一致性研究[D]. 操开波. 西安电子科技大学, 2020(05)
- [10]国产处理器监听广播协议部件的优化和验证[D]. 魏云蛟. 安徽大学, 2020(07)