提高异构软件的性能和效率

嵌入式计算中的异构体系结构正迅速成为一个现实——我们的确目睹了诸多行业顶尖的IP及半导体公司正在创建异构计算硬件。

下文我将阐述一个比较典型的异构计算实例及其进行异构编程模型所面临的挑战。

在现代SoC中运行美化算法

以下图表展示了录像应用程序如何使用异构软硬件组件来进行美化。在这个案例中,GPU最先检测到ISP或相机捕获的输入帧,并确定脸部的位置和特征(如眼睛、鼻子或其它部位),随后,这些信息将传送给CPU,通过CPU来跟踪并自动调整相机的焦点和曝光度,以保证生成高质量的视频。CPU也需要确定脸部的哪些部位含有肤色,而GPU则应用双线性过滤以使皮肤纹理平滑,并去除雀斑和皱纹,同时又保留脸部边缘的锐度。

在现代SoC中运行美化算法

已转换的序列图像将输出到硬件编码器中以记录到磁盘,同时也将输出到显示子系统,以在预览窗口中呈现出来。不仅如此,CPU可指示硬件编码器对脸部进行编码,使其比背景的保真度更高,这可以优化视频质量和文件大小。在此方案中,至少有5个不同的硬件部件需要访问内存的图像数据。

内存带宽限制

很多SoC的一大关键特征是存在一个统一的系统内存,如用于硬件部件之间共享的片外DDR DRAM。这些部件与其他部件相通,且通过使用共同的总线和互连可与内存保证相通,但其带宽严格限制在限制执行区域及成本限制内。SoC带宽通常比使用PCI Express总线的桌面级机器小10倍,且具有常见的性能瓶颈,特别是在多个硬件组件同时访问内存及其它I/O的情况下尤其如此。

应用程序

此外,当应用程序之间的数据通过所有权不同的硬件组件时,底层操作系统可能在内存中复制数据。在某些情况下,这可能是由于硬件的限制,例如GPU需要访问CPU在虚拟内存中分配的数据,而CPU的页面要写入磁盘。在某些情况下,这可能与图片格式有关,例如ISP产生的图像传感数据是YUV格式,但CPU或GPU需要以RGB色彩空间的格式对数据进行过滤。

相反,有些操作系统如Android则自动将反馈给开发商的数据数据从YUV图像格式转换为了RGB格式(如,OGLES_TEXTURE_2D结构)。这样降低了许多视觉算法的效率(视觉算法原本只需要处理图像亮度数据)。以视频速度处理高分辨率图像数据时,幕后进行的复制工作将使效率更加低。

请加入我们,了解我们的工程师团队如何通过创建创新的PowerVR成像框架来解决SoC带宽问题。

扩展阅读

以下清单可帮助您浏览已发表的一系列异构计算的文章:

• PowerVR异构计算术语表
• 异构计算移动系统入门
• 快速指引:为PowerVR Rogue GPU编写OpenCL内核
• 提升异构软件的性能和效率
• Android系统的PowerVR成像框架
• PowerVR成像框架内支撑零拷贝流
• PowerVR成像框架SDK
• 异构计算案例研究:图像卷积滤波
• 测量GPU计算性能
• Imagination’进行移动计算的智能有效方法

原文链接:
http://blog.imgtec.com/powervr/increasing-power-efficiency-computer-vision

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