IntervalZero RTX64 4.x 帮助文档

⌘K
  1. 主页
  2. 文档
  3. IntervalZero RTX64 4.x 帮助...
  4. RTSS 实时子系统
  5. 使用 Intel RDT 技术优化性能

使用 Intel RDT 技术优化性能

英特尔® 资源控制器技术 (RDT:Resource Director Technology) 提供了一组资源分配(或控制)功能,可控制应用程序如何使用共享资源,例如末级缓存 (LLC) 和内存带宽。RDT 包括缓存分配技术 (CAT:Cache Allocation Technology) 和内存带宽分配 (MBA:Memory Bandwidth Allocation):

  • 某些应用程序可能会过度利用缓存,可能造成更重要应用程序的性能减低。缓存分配技术 (CAT) 可以控制最后一级缓存 (LLC:Last-level cache) 中的数据放置,从而实现重要线程的隔离和优先级排序。CAT 使 RTX64 能够为每个逻辑处理器分配 L3 缓存或 L2 缓存;
  • MBA 允许 RTX64 控制每个内核可用的内存带宽;

RDT 引入了一个称为服务类别 (CLOS:Class of Service) 的中间件结构,作为可分组线程的资源控制标记。CLOS 具有资源容量位掩码 (CBM:Capacity BitMasks),指示给定 CLOS 可以使用多少缓存。RDT 使用 CLOS 配置 L3/L2 缓存大小和内存限制(延迟)。作为 RTX64 可扩展性策略,CLOS 0 被配置为最高优先级 CLOS,其次是 CLOS 1,依此类推。在 RTX64 上下文中,CLOS 与线程优先级(thread priority)不同,但会影响线程的行为。


可用的 RDT 模式

作为 RDT 的主要设置,RTX64 会将 Windows 核心和 RTSS 核心之间的 L3/L2 缓存空间分开,从而消除 Windows 或其他系统活动的缓存争用。RTX64 将 Windows 核心设置为最大内存限制,将 RTSS 核心设置为零内存限制。为了进一步区分并行运行的 RTSS 线程之间的性能,RTX64引入了 CAT 和 MBA 两种 RDT 模式:平面性能模式和基于优先级的关闭性能模式。

注意:启用 RDT 性能优化后,Windows 性能可能会下降。如果 Windows 性能下降影响到了使用,可以在 RTX64 控制面板中禁用 Intel RDT 性能优化。

缓存分配技术 (CAT) 模式

模式描述
平坦性能模式
Flat performance mode
所有 RTSS 逻辑处理器均与所有 RTSS L3/L2 缓存进行同等配置
基于优先级的 CLOS 性能模式
Priority-based CLOS performance mode
每个 RTSS 逻辑处理器的 L3/L2 缓存基于正在运行的线程的 CLOS(参阅下面内容:了解服务等级(Understanding Class of Service)),从而通过减少较低 CLOS 优先级线程的 L3/L2 缓存争用,来优化较高 CLOS 优先级的线程的性能

内存带宽分配 (MBA) 模式

模式描述
平坦性能模式
Flat performance mode
所有 RTSS 核心都配置有最小内存延迟
基于优先级的 CLOS 性能模式
Priority-based CLOS performance mode
每个 RTSS 逻辑处理器的内存延迟基于正在运行的线程的 CLOS(参阅下面内容:了解服务等级(Understanding Class of Service));因此,通过限制相对其优先级可能过度利用内存带宽的线程,可以有效避免较高 CLOS 优先级的带宽密集型线程的性能下降。
由于 MBA 在核心和最后一级共享高速缓存,以及内存控制器之间使用了可编程速率控制器,因此这些高速缓存的带宽也可能会减少。

注意:建议您仅限制不能有效使用核外缓存的带宽密集型线程。

可以通过 RTX64 控制面板配置 CAT/MBA 模式。更多信息,参阅配置英特尔® 资源导向技术 (RDT) 设置(Configuring Intel® Resource Director Technology (RDT) Settings)


了解服务等级(CLOS)

当子系统配置为使用基于优先级的 CLOS 性能模式(Priority-based CLOS performance mode)时,RTSS 线程的服务等级(CLOS)将基于线程的优先级。CLOS 和优先级通过 RTSS 处理器/内核可用的 CLOS 数量与 RTSS 优先级范围 (0~127) 反向映射。使用实时函数 RtGetRDTCapability 确定 CLOS 的数量。在平坦性能模式(performance mode)下,所有线程 CLOS 默认为0。

Windows 和 RTSS CLOS 不重叠 L3 缓存功能位掩码 (CBM),所以它们不会竞争末级缓存 (LLC) 中的空间。RTSS CLOS 使用重叠的位掩码,这意味着它们不是完全分离的。这样做是因为当线程并发运行时通常可以获得更高的吞吐量,并且可以保留相对优先级。

在下面的示例中,映射的 CLOS 数量等于 7。该表还显示了每个 CLOS 的 L3 缓存功能位掩码 (CBM) 的配置以及 MBA 延迟。

CLOSL3 CBMMBA 延迟RTSS 优先级范围
0001,1111,11110109~127
1000,0111,11112090~108
2000,0001,11114072~89
3000,0000,11115054~71
4000,0000,01116036~53
5000,0000,00117018~35
6000,0000,0001800~17
7110,0000,000090Windows 核心

注意:CLOS 数量,CBM 位数和 MBA 延迟范围取决于处理器。上面的示例基于 Intel Skylake i9-7900X。如果在 RTX64 控制面板中为 CAT 和 MBA 配置了平坦性能模式(performance mode),则 RTSS 可用的 CLOS 数量为 1。

在上面的 CLOS 示例中:

  • CLOS 0 配置有所有 RTSS L3 CBM 位(最大 L3 缓存空间)和零 MBA 延迟。因此,CLOS 等于 0 的RTSS线程在运行时将具有最高的性能
  • CLOS 6 配置了1个 L3 CBM 位(最小L3缓存空间)和较大的MBA延迟。因此,CLOS 等于 6 的 RTSS 线程在运行时性能将最低
  • CLOS 7(不计入 CLOS 数量)是为 Windows 处理器/核心保留的。CLOS 7 与其他系统共享 L3 CBM 位和最大 MBA 延迟。

基于上面的 CLOS 示例:

  • 如果 CAT 配置为平坦性能模式(performance mode),则 CLOS 0~6 的L3 CBM 同等配置为001,1111,1111;
  • 如果 MBA 配置为平坦性能模式(performance mode),则 CLOS 0~6 的 MBA 延迟均配置为 0;
  • 如果为 CAT 和 MBA 都配置了平坦性能模式(performance mode),则 RTSS 仅可使用 CLOS 0。

RTSS 线程的 CLOS 可以被 RTX64 SDK 提供的实时函数 RtSetThreadCLOS 覆写。

注意:RTSS 线程的 CLOS 不会影响线程调度程序对当前线程的选择,当前线程的选择基于线程的优先级。线程的 CLOS 仅在被调度为当前线程时影响其性能。