Improving Reliability of Soft Real-Time Embedded Systems on Integrated CPU and GPU Platforms
提高集成 CPU 和 GPU 平台上软实时嵌入式系统的可靠性
文章核心
主要讨论了如何在集成了CPU和GPU的多处理器系统芯片(MPSoCs)上,提高软实时嵌入式应用程序的可靠性。这类应用程序需要大量并行处理,而该文章提出了一种混合框架来解决寿命可靠性(由于永久性故障)和软错误可靠性(由于瞬态故障)的问题。
一、引言
背景与动机
为了满足许多应用的性能和功耗需求,已经引入了各种异构多处理器系统芯片(MPSoCs)。其中一种类型的MPSoCs由集成的CPU和GPU组成。由于GPU提供了强大的并行计算能力,而CPU提供了通用计算能力,这种类型的MPSoCs在许多应用中得到了广泛使用。例如,Nvidia提供了一个完整的软件栈来支持自动驾驶,其软件依赖于GPU的并行计算能力来实现诸如障碍物检测和可行驶路径等关键功能。对于自动驾驶车辆来说,实现高可靠性是一个重大挑战,特别是在恶劣的汽车环境下。
可靠性问题
在这些应用中,瞬态故障引起的软错误可靠性和永久故障引起的寿命可靠性是设计中的两个重要问题。瞬态故障比永久故障发生得更频繁,因此在本文中,目标是在寿命可靠性约束下最大化软错误可靠性,尤其是针对软实时应用。
虽然大多数现有研究都集中在CPU可靠性上,但也有一些技术旨在提高GPU的软错误可靠性和/或寿命可靠性。然而,这些技术主要是为了从软错误中恢复,而不是减少软错误发生率,并且并非所有GPU都支持这些技术。此外,它们仅考虑GPU的可靠性,而没有考虑CPU的可靠性。对于集成了CPU和GPU的MPSoCs来说,来自任一方的错误都可能导致系统故障,因此需要综合考虑CPU和GPU的可靠性。
研究目标
本文系统地解决了在CPU和GPU上运行的任务的可靠性问题。对于给定任务,目标是在寿命可靠性和实时性约束下最大化软错误可靠性。此外,为了避免热节流,我们要求系统的操作温度保持在热阈值以下。我们在使用CUDA的系统环境中考虑这个问题,因为CUDA被广泛应用于许多实际应用中。CUDA任务通过操作系统(OS)的驱动程序使用GPU资源,可能依赖于某些I/O服务来完成。
HyFRO框架
为了解决上述问题,首先探索了CUDA任务的映射如何影响任务的CPU时间,然后开发了一个名为HyFRO(Hybrid Framework for Reliability Optimization)的混合框架。该框架:
- 静态地将任务映射到CPU核心,以提高软错误可靠性;
- 动态地在CPU核心之间迁移任务,以平衡核心的磨损状态,从而实现更高的寿命可靠性;
- 动态地调整CPU和GPU核心的频率,以在峰值温度、实时性和寿命可靠性约束下提高软错误可靠性。
二、相关工作
1. CPU和GPU集成的MPSoCs
- 这些系统提供了强大的并行计算能力和通用计算能力,已有多篇论文讨论了如何实现更低的功耗和更高的性能。
- 功耗和性能优化:
- Jeong等提出了通过调整CPU和GPU内存请求的优先级来改进GPU性能。
- Pathania和Prakash分别提出了通过调整CPU和GPU核心频率来最大化MPSoC性能的方法。
- Wang等人开发了一个框架,在温度约束下,通过分区和映射并发应用来最大化系统性能。
2. CPU可靠性研究
- 软错误可靠性:多篇论文提出了不同的方法来分配任务失败后的恢复。
- Zhao等提出了通过增加核心频率来减少软错误率的方法。
- 寿命可靠性:Huang等通过任务映射和调度来防止老化效应。Das等提出了一种基于机器学习的算法来降低温度和减轻热循环。