异构计算移动系统简介

在移动和嵌入式市场中,电子产品的设计受到多方面的约束,而这些约束条件却又十分矛盾:市场一方面需要高性能且低功耗的产品,一方面却又要求降低生产成本且缩短市场投放时间。

这种种约束由此也产生了一种趋势:进行更专业的硬件设计,以满足特定的应用程序。如果每个任务可以完美匹配一个功能单元,晶体管的浪费情况会大为好转,功率效率也将稳步提升。如此一来,应用程序处理器会随着时间的推移变得越来越异构,使多个组件得以集成到一个系统芯片中(SoC)。

下图展示了现代SoC的架构。通常来讲,这款芯片由以下几个部分组成:CPU(具有可选择性的多核及SIMD功能)、3D图形加速和高性能矢量计算GPU、获取图像传感器数据的ISP(图像信号处理器)、用于编码解码加速的VDE(视频编码解码器)、保持连通性的RPU(无线电处理单元)。每个部分均各具特色,结合各部分将使应用程序的运行更加有效。

应用程序

如今,很多程序开发人员主要依靠CPU来满足高端计算摄影和计算机视觉算法的性能需求。然而,以CPU为中心的解决方案却在努力实现高分辨率图像的可持续视频速率处理,这大部分是由于受到了设备发热的限制。

正如下图所示,CPU由少量内核组成,而这些内核却具有大量的数据缓存,内核优化后可以提高通用控制代码的执行力,并降低内存延迟。另一方面,GPU致力于其晶体管运算器(算术逻辑单位),而不是数据缓存和控制流。有了这样的硬件配置,大量需要反复计算的无支链数据集便具有更高的执行效率,如:运算像素的图像处理算法。

图像处理算法

此外,由于GPU的设计旨在以低于CPU的时钟速度运行,因此,从CPU转移图像处理工作负荷到GPU又可提高性能、降低功耗并产生热量。由于CPU有更多自由周期来响应操作系统和用户接口的需求,因此得以实现更加平衡、更快响应的结果。

在移动和嵌入式软件中,异构计算结合了不同类型的处理单元,以在有限的功率和热开支下满足应用程序的性能需求。将应用程序分为多个可在硬件单元中分配的工作负荷,而每个工作负荷在最高效执行的硬件单元运行,如此便可实现整体性能的改善,提高功率效率。

对应用程序进行分区时,通常将串行任务分配给CPU,但数据并行处理任务却是转移工作负荷至GPU的最佳选择。如果SoC能提供专用硬件加速器如ISP或VDE,那么通常将相关的任务如图像去噪及视频回放等分配给加速器,以尽可能提高效率功率。

然而,在某些情况下,可能需要在软件中实现这些任务,例如:比起固定功能的加速器,使用GPU计算进行更高质量的算法将更有效率。GPU运算的使用在计算机视觉领域尤为常见。而计算机视觉领域一直在不断地改进现有的算法及整个新视觉算法。将算法快速分布至产品中既需要可编程性,又需要高性能的计算能力。

请加入我们共同探讨下次异构计算示例及SoC目前存在的带宽限制问题。

补充阅读

以下为已发布的异构计算系列文章清单,供您参考:

PowerVR异构计算的完整术语
异构计算移动系统简介
• 计算机视觉:异构体系的最后案例
• Android系统的PowerVR图像框架
• PowerVR图像框架支持支持零拷贝流
• PowerVR图像框架SDK
• 为PowerVR Rogue GPU编写OpenCL内核的快速指引
• 异构计算案例研究:图像卷积滤波
• 测量GPU计算性能
• Imagination智能高效的移动计算方法

原文链接:
http://blog.imgtec.com/powervr/introduction-mobile-systems-heterogeneous...

--电子创新网--
粤ICP备12070055号