Skip to main content
QUICK REVIEW

[论文解读] Protecting Real-Time GPU Applications on Integrated CPU-GPU SoC Platforms

Waqar Ali, Heechul Yun|arXiv (Cornell University)|Dec 23, 2017
Parallel Computing and Optimization Techniques参考文献 18被引用 8
一句话总结

本文提出 BWLOCK++,一种基于软件的机制,可保护集成式 CPU-GPU SoC 上的实时 GPU 应用程序,免受与之共调度的内存密集型 CPU 工作负载引起的性能下降影响。通过在内核级调度和内存访问优先级化中动态管理内存带宽分配,BWLOCK++ 将 GPU 内核的性能下降从最高 4 倍降低至不足 10%,适用于 NVIDIA Tegra K1 平台。

ABSTRACT

Integrated CPU-GPU architecture provides excellent acceleration capabilities for data parallel applications on embedded platforms while meeting the size, weight and power (SWaP) requirements. However, sharing of main memory between CPU applications and GPU kernels can severely affect the execution of GPU kernels and diminish the performance gain provided by GPU. For example, in the NVIDIA Tegra K1 platform which has the integrated CPU-GPU architecture, we noticed that in the worst case scenario, the GPU kernels can suffer as much as 4X slowdown in the presence of co-running memory intensive CPU applications compared to their solo execution. In this paper, we propose a software mechanism, which we call BWLOCK++, to protect the performance of GPU kernels from co-scheduled memory intensive CPU applications.

研究动机与目标

  • 解决在集成式 CPU-GPU SoC 平台上,当 GPU 内核与内存密集型 CPU 应用程序共调度时,GPU 内核性能严重下降的问题。
  • 缓解共享内存架构中 CPU 和 GPU 工作负载之间主内存竞争的影响。
  • 使实时 GPU 应用程序即使在 CPU 任务具有不可预测内存访问模式的情况下,也能满足严格的时序约束。
  • 提供一种纯软件解决方案,无需对现有 GPU 或 CPU 硬件或操作系统进行修改。

提出的方法

  • 动态监控并分类共调度 CPU 应用程序的内存访问模式,以识别内存密集型工作负载。
  • 通过带宽预留机制,将 GPU 内核的内存请求优先于较不关键的 CPU 内存访问。
  • 实现一种内核级调度策略,以在执行期间强制实施 GPU 内核的内存带宽保证。
  • 使用运行时性能分析,根据观察到的内存带宽消耗自适应调整内存访问优先级。
  • 将 BWLOCK++ 作为轻量级软件层集成到操作系统的任务调度器中,以强制实施带宽隔离。
  • 利用现有的硬件内存控制器和缓存一致性机制,以强制执行访问顺序,无需额外硬件。

实验结果

研究问题

  • RQ1在集成式 CPU-GPU SoC 上,CPU 和 GPU 工作负载之间的内存竞争在多大程度上会降低 GPU 内核的性能?
  • RQ2纯软件机制是否能有效隔离 GPU 内存带宽,并在不同 CPU 内存工作负载下维持可预测的性能?
  • RQ3与无保护基线执行相比,BWLOCK++ 在减少 GPU 内核性能下降方面有多高效?
  • RQ4BWLOCK++ 对 CPU 和 GPU 工作负载引入的性能开销是多少?
  • RQ5在动态且不可预测的 CPU 内存访问模式下,BWLOCK++ 如何维持 GPU 应用程序的实时保证?

主要发现

  • 在 NVIDIA Tegra K1 平台上,当 GPU 内核与内存密集型 CPU 应用程序共调度时,其性能最高下降达 4 倍。
  • 在相同最坏情况下,BWLOCK++ 将 GPU 内核的最大性能下降成功降低至 10% 以下。
  • 该机制在无需修改底层硬件或 GPU 架构的情况下,实现了稳定的性能隔离。
  • BWLOCK++ 的运行时开销极低,未在 CPU 应用程序性能中观察到显著下降。
  • 通过确保可预测的内存带宽分配,该解决方案有效维持了 GPU 内核的实时响应能力。
  • BWLOCK++ 在多种多样的内存访问模式下表现出稳健性,证实了其在动态嵌入式工作负载中的有效性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。