[论文解读] Protecting real-time GPU kernels on integrated CPU-GPU SoC platforms
该论文提出 BWLOCK++,一种软件框架,通过在运行时动态插入内存带宽锁,对集成式 CPU-GPU SoC 上的实时 GPU 内核进行保护,从而在运行时通过限制 CPU 内存带宽来防止干扰。即使在内存密集型 CPU 工作负载下,也能实现接近独占 GPU 性能的水平,通过一种新颖的节流公平调度器(TFS)算法,CPU 吞吐量损失最高降低 75%,从而实现在 NVIDIA Jetson TX2 等平台上的可靠实时 GPU 任务调度。
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 上,与共调度的 CPU 应用程序发生内存带宽竞争时,导致实时 GPU 内核性能下降的问题。
- 在资源受限的机器人和嵌入式系统中,实现 GPU 加速工作负载的可预测、实时执行。
- 通过智能内存带宽节流,在最小化 CPU 吞吐量退化的同时保护 GPU 内核性能。
- 与现有的实时可调度性分析框架集成,实现端到端的系统验证。
提出的方法
- 在运行时对 GPU 内核进行动态插桩,插入内存带宽锁,以在 GPU 执行期间调节 CPU 内存访问。
- 基于每个 GPU 任务的阈值,对 CPU 核心实施内存带宽节流,以限制干扰。
- 提出节流公平调度器(TFS),一种修改后的 CFS,优先处理 GPU 内核执行期间的 CPU 密集型任务,而非内存密集型任务。
- 使用优先级天花板协议来序列化 GPU 执行,通过带宽锁获取防止优先级反转。
- 采用基于性能分析的阈值选择机制,为每个 GPU 任务设置最优内存带宽限制。
- 通过将 GPU 执行段建模为具有阻塞的临界区,与现有的以 CPU 为中心的实时可调度性分析框架集成。
实验结果
研究问题
- RQ1在集成式 CPU-GPU 平台上,内存带宽节流能否有效隔离内存密集型 CPU 任务对实时 GPU 内核的干扰?
- RQ2内存带宽节流对 Linux CFS 调度器有何影响?如何缓解该影响?
- RQ3运行时插桩框架能否消除手动修改内核以保护 GPU 任务的需求?
- RQ4所提出的框架在保持 GPU 性能隔离的同时,能在多大程度上减少 CPU 吞吐量损失?
- RQ5BWLOCK++ 能否与现有的实时可调度性分析框架集成,用于混合 CPU-GPU 系统?
主要发现
- 在 NVIDIA Jetson TX2 上,面对内存密集型 CPU 工作负载,BWLOCK++ 将 GPU 内核性能下降从最高 3.3 倍降低至接近独占 GPU 性能(误差在 1% 以内)。
- 与默认的 CFS 调度器相比,节流公平调度器(TFS)在内存带宽节流条件下,将 CPU 吞吐量损失最高降低 75%。
- BWLOCK++ 在所有评估的 GPU 基准测试中的总运行时开销,低于独占执行时间的 1%。
- 通过减少因干扰导致的 GPU 内核定时中的过度悲观估计,该框架实现了准确的最坏情况执行时间(WCET)估算。
- BWLOCK++ 与现有的以 CPU 为中心的实时可调度性分析框架成功集成,支持端到端的系统级验证。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。