57、计算机系统性能评估与工作负载特征分析

计算机系统性能评估与工作负载特征分析

1. 基本块向量(BBV)聚类与SimPoint选择

在计算机系统性能评估中,基本块向量(BBV)聚类是一种重要的技术。通过将所有BBV聚类到k个簇中,计算基于添加到簇中的BBV的新簇中心,重新计算BBV到新簇中心的距离,并可能将一些BBV重新分配到不同的簇。这个迭代过程会在没有BBV改变簇时收敛。

聚类完成后,可以从每个簇中选择一个BBV来代表整个簇。选择的窗口或阶段被称为SimPoint。在极端情况下,还可以选择一个与程序中所有BBV的欧几里得或曼哈顿距离最近的BBV,进行单SimPoint模拟。与SMARTS不同,SimPoint中的每个阶段运行1亿条指令,即使阶段开始时微架构缓冲区为空,这些结构也能在阶段开始时达到稳定状态,无需像SMARTS方法那样预热微架构结构。

2. 工作负载特征分析的目的

工作负载特征分析具有多方面的目的:
- 帮助理解一组程序在当前或未来机器上的性能瓶颈。
- 提供关键信息,有助于开发表征工作负载的合成基准测试。
- 基于工作负载特征分析的外推可以预测当前或未来机器在工作负载增长时的行为,通过减少工作负载的大小并预测更大工作负载的行为来加速模拟。

2.1 理解性能瓶颈

工作负载特征分析的核心是理解工作负载如何与底层目标架构交互。它使设计人员能够了解哪些微架构和架构特征有助于或阻碍工作负载性能。例如,如果工作负载遇到太多TLB缺失,未来的设计可能会增加TLB的大小以减轻TLB导致的性能损失。同时,它也帮助软件开发人员了解如何重写代码以避免一些潜在的性能损失。

工作负载特征分析可以在当前系统上通过在物理系统上设置和运行工作负载来实现,也可以在模拟的未来系统上进行。模拟可以更清晰地了解工作负载与目标系统之间的微架构交互。

以VTune为例,它是一款适用于英特尔架构的商业软件性能分析器。它可以非侵入性地分析在本地硬件上运行的任何程序,包括在多处理器上运行的多线程程序,而无需从源代码重新编译。VTune可以在程序执行时监控处理器内部事件计数器中的大量性能/代码执行属性,如在给定时钟周期内获取的程序计数器、退休指令数、缓存缺失数、分支错误预测数、总线访问和总线冲突等。在程序执行结束时,VTune会生成这些采样数据点的跟踪,用于工作负载特征分析。

2.2 合成基准测试

工作负载特征分析有助于合成新的基准测试。例如,收集复杂工作负载中执行的指令混合信息,然后使用这些信息创建具有与初始工作负载相似指令配置文件的合成基准测试。这种方法在工作负载设置具有挑战性时特别有用,如TPC - C等复杂工作负载。但需要注意的是,具有相似指令混合配置文件的合成基准测试可能无法展现服务器工作负载所具有的复杂系统级交互,因此其结果的可信度常受到质疑。

2.3 预测工作负载行为

在实际应用中,生产环境中使用的商业工作负载通常对硬件和软件资源有巨大需求,这些配置称为扩展设置。由于其规模巨大,很难对其进行模拟,使用这些设置来探索新的微架构想法也不切实际。

研究人员通常会在称为缓存设置的较小环境中设置这些复杂工作负载。缓存设置通过在多个维度上减少资源需求来降低复杂性,同时匹配工作负载大小的减少。工作负载特征分析可以弥合缓存设置和扩展设置之间的差距,通过分析缓存研究的结果来预测工作负载在扩展设置中的潜在性能。

3. 实验与练习

3.1 使用SimpleScalar模拟器进行设计评估

  • 缓存配置模拟 :使用sim - cache模拟器模拟四种L1缓存配置,分析L1缓存关联性对缺失率的影响,以及L1缓存大小和关联性如何相互作用来改变缺失率。
    • 配置1:L1分离指令和数据缓存,4 KB,直接映射,32字节行。
    • 配置2:L1分离指令和数据缓存,4 KB,两路,32字节行。
    • 配置3:L1分离指令和数据缓存,16 KB,直接映射,32字节行。
    • 配置4:L1分离指令和数据缓存,16 KB,四路映射,32字节行。
  • 使用Cacti工具进行功耗分析 :使用Cacti工具计算上述四种L1缓存配置的延迟和功耗,假设功耗是最重要的设计因素,1%的L1缺失率会使处理器功耗增加1%,比较不同缓存配置的功耗,选择最佳的缓存设计以降低总体功耗。
  • 使用sim - outorder模拟器研究乱序处理器设计空间
    • 创建基线机器配置文件,使用Cacti估计RUU和缓存延迟,完成配置文件后,使用SimpleScalar网站提供的两个基准测试模拟基线处理器配置。
    • 改变配置文件中的机器宽度(获取/解码/发行/提交),使用不同的发行宽度(1、2、4和8条指令/周期)进行模拟,生成结果、绘图并分析,绘制MIPS与机器宽度的关系曲线,并通过观察各种指标(如各种缓冲区的占用率、分支指令的动态频率、缓存命中率等)解释这些曲线。

3.2 使用PIN工具进行缓存模拟

  • 下载PIN工具基础设施,使用pinatrace示例收集内存引用跟踪,忽略前1亿个内存引用,生成接下来1000万个跟踪记录到输出文件。
  • 将跟踪输出文件提供给缓存模拟器,重复练习。
  • 使用SMARTS采样方法收集新的跟踪,重写PIN工具代码,跳过1000万条指令并收集接下来2000个内存引用,重复此过程直到程序终止或收集的跟踪记录超过1000万条,将新的跟踪输出文件提供给缓存模拟器并重复练习,比较SMARTS样本与之前跟踪样本的缓存命中/缺失计数的变化。
  • 将缓存模拟器直接集成到PIN工具中,将加载/存储地址直接提供给缓存模拟器,运行基准测试至完成,比较完整基准测试运行与简单采样运行和SMARTS采样运行的缓存命中/缺失率。

3.3 量子和松弛模拟分析

考虑量子模拟和松弛模拟,假设量子为3个周期,松弛为4个周期,模拟一个四核目标CMP在四核底层主机CMP上的情况,分析在哪些场景下量子模拟和松弛模拟提供相同的加速比。

4. 总结

通过上述的BBV聚类、工作负载特征分析以及相关实验,我们可以更深入地了解计算机系统的性能,为系统设计和优化提供有力的支持。在实际应用中,我们可以根据不同的需求选择合适的方法和工具,以提高系统的性能和效率。

4.1 关键技术总结

技术 描述
BBV聚类 将BBV聚类到k个簇中,选择代表BBV进行SimPoint模拟
工作负载特征分析 理解性能瓶颈、合成基准测试、预测工作负载行为
VTune分析器 监控程序性能/代码执行属性
SimpleScalar模拟器 进行缓存和处理器设计评估
PIN工具 进行缓存模拟和跟踪收集

4.2 实验流程总结

graph LR
    A[开始] --> B[BBV聚类]
    B --> C[工作负载特征分析]
    C --> D[实验练习]
    D --> E[缓存配置模拟]
    D --> F[功耗分析]
    D --> G[乱序处理器设计空间研究]
    D --> H[PIN工具缓存模拟]
    D --> I[量子和松弛模拟分析]
    E --> J[分析结果]
    F --> J
    G --> J
    H --> J
    I --> J
    J --> K[总结与优化]
    K --> L[结束]

通过这些技术和实验,我们可以更好地掌握计算机系统的性能特征,为未来的系统设计和优化提供指导。在实际操作中,需要根据具体情况选择合适的方法和工具,以达到最佳的性能提升效果。

5. 技术细节深入剖析

5.1 BBV聚类与SimPoint选择原理

BBV聚类的核心在于不断迭代优化簇中心,以实现高效的性能评估。具体步骤如下:
1. 初始簇中心计算 :根据添加到簇中的BBV确定初始簇中心。
2. 距离计算与重新分配 :重新计算BBV到新簇中心的距离,若某个BBV距离其他簇中心更近,则将其重新分配到该簇。
3. 收敛判断 :重复上述步骤,直至没有BBV改变簇,此时聚类过程收敛。

SimPoint选择是在聚类完成后,从每个簇中挑选一个BBV代表整个簇。在极端情况下,选择与所有BBV距离最近的单个BBV进行单SimPoint模拟。这种方法的优势在于,每个SimPoint阶段运行1亿条指令,能使微架构缓冲区在阶段开始时达到稳定状态,无需预热。

5.2 工作负载特征分析的关键要点

5.2.1 理解性能瓶颈的方法

理解性能瓶颈的关键在于分析工作负载与目标架构的交互。可以通过以下两种方式实现:
- 物理系统测试 :在当前系统上设置并运行工作负载,利用硬件性能计数器收集指令混合信息和微架构行为统计数据。
- 模拟系统分析 :在模拟的未来系统上进行测试,这种方式能更清晰地观察工作负载与目标系统的微架构交互。

以VTune为例,它能非侵入性地监控程序性能,具体监控指标如下表所示:
| 监控指标 | 描述 |
| ---- | ---- |
| 程序计数器 | 在给定周期内获取的程序计数器值 |
| 退休指令数 | 已完成执行的指令数量 |
| 缓存缺失数 | 缓存未命中的次数 |
| 分支错误预测数 | 分支预测错误的次数 |
| 总线访问和冲突 | 总线的访问情况和冲突次数 |

5.2.2 合成基准测试的局限性

合成基准测试通过收集工作负载的指令混合信息,创建具有相似指令配置文件的基准测试。但它存在一定局限性,主要体现在无法完全展现服务器工作负载的复杂系统级交互,因此其结果的可信度受到质疑。在使用合成基准测试时,需要谨慎评估其适用性。

5.2.3 预测工作负载行为的挑战与解决方案

生产环境中的商业工作负载通常具有大规模的资源需求,难以进行模拟。研究人员采用缓存设置来降低复杂性,但需要通过工作负载特征分析弥合缓存设置和扩展设置之间的差距。具体步骤如下:
1. 缓存设置搭建 :在较小环境中设置工作负载,减少资源需求并匹配工作负载大小的减少。
2. 特征分析与预测 :分析缓存研究结果,预测工作负载在扩展设置中的潜在性能。

6. 实验结果分析与优化建议

6.1 SimpleScalar模拟器实验结果

6.1.1 缓存配置模拟结果

通过sim - cache模拟器对四种L1缓存配置进行模拟,结果表明:
- 关联性对缺失率的影响 :随着L1缓存关联性的增加,缺失率通常会降低。例如,四路映射的缓存配置在多数情况下缺失率低于直接映射的配置。
- 缓存大小和关联性的交互作用 :较大的缓存大小和较高的关联性相结合,能更有效地降低缺失率。如16 KB四路映射的缓存配置的缺失率相对较低。

6.1.2 功耗分析结果

使用Cacti工具计算四种L1缓存配置的延迟和功耗,并考虑缺失率对功耗的影响。结果显示,不同缓存配置的功耗差异较大,需要综合考虑缓存配置和缺失率来选择最佳设计,以降低总体功耗。

6.1.3 乱序处理器设计空间研究结果

改变机器宽度进行模拟,结果表明:
- MIPS与机器宽度的关系 :随着机器宽度的增加,MIPS(每秒百万条指令)通常会先上升后趋于平稳。这是因为在一定范围内,增加机器宽度能提高指令处理效率,但当达到一定程度后,其他因素(如缓冲区占用率、分支指令频率等)会限制性能提升。
- 性能指标分析 :通过观察各种指标,如指令获取队列、寄存器更新单元和负载/存储队列的占用率,分支指令的动态频率,缓存命中率等,可以深入理解不同机器宽度下的性能变化。

6.2 PIN工具实验结果

6.2.1 不同采样方法的缓存命中/缺失率比较

比较简单采样运行、SMARTS采样运行和完整基准测试运行的缓存命中/缺失率,结果显示:
- SMARTS采样方法 :能在一定程度上反映完整基准测试的缓存行为,但仍存在一定偏差。
- 完整基准测试 :能提供最准确的缓存命中/缺失率,但计算复杂度较高。

6.2.2 缓存模拟器集成的优势

将缓存模拟器直接集成到PIN工具中,避免了跟踪文件的生成,减少了存储空间的占用,同时能更准确地模拟缓存行为。

6.3 量子和松弛模拟分析结果

在模拟四核目标CMP在四核底层主机CMP上的情况时,分析量子模拟和松弛模拟提供相同加速比的场景。结果表明,在某些特定的工作负载和系统配置下,两者能提供相同的加速比,具体场景需要进一步深入研究。

6.4 优化建议

根据实验结果,提出以下优化建议:
- 缓存设计 :选择合适的缓存大小和关联性,综合考虑功耗和缺失率,以降低总体功耗。
- 处理器设计 :根据工作负载特点,合理选择机器宽度,避免过度增加机器宽度导致性能瓶颈。
- 采样方法选择 :在计算资源有限的情况下,可选择SMARTS采样方法,但在需要高精度结果时,应进行完整基准测试。

7. 未来展望

随着计算机技术的不断发展,计算机系统性能评估和工作负载特征分析将面临新的挑战和机遇。未来的研究方向可能包括:
- 更复杂工作负载的分析 :随着应用程序的不断发展,工作负载将变得更加复杂,需要开发更有效的分析方法。
- 新兴架构的支持 :如量子计算、人工智能芯片等新兴架构的出现,需要相应的性能评估和特征分析方法。
- 实时性能监测与优化 :实现对计算机系统实时性能的监测和优化,以提高系统的响应速度和效率。

通过不断探索和研究,我们有望更好地理解计算机系统的性能特征,为未来的系统设计和优化提供更加有力的支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值