能源感知的移动应用开发与多核架构指令级并行优化
1. 移动应用开发与优化背景
如今,移动领域的发展速度远超桌面领域。人们热衷于“便携式设备”的概念,手持设备应运而生。尽管便携式设备体积小巧,但由于其数量众多,在功耗方面占据了相当大的比例。因此,优化该领域的应用程序至关重要。
ARM 核心以其高效的节能特性,降低了部分功耗。若能进一步优化运行在移动设备上的应用程序,将有望打造出高效低功耗的移动设备。
2. 编译器优化的重要性
编译器优化旨在提高代码效率,同时保持语义不变。这一阶段会执行诸如消除无用代码、去除冗余、代码重排序等操作,还能进行对 ARM 架构有利的流水线相关操作。
以一个使用选择排序对 100,000 个元素的数组进行排序的程序为例,GNU 编译器集合(GCC)提供了 3 个优化级别,外加一个未优化级别。不同优化级别下程序的 CPU 周期数如下表所示:
| 级别 | CPU 周期数 |
| ---- | ---- |
| 未优化 | 71,280,000 |
| 级别 1 (-O1) | 18,910,000 |
| 级别 2 (-O2) | 26,410,000 |
| 级别 3 (-O3) | 27,160,000 |
从表中可以看出,优化级别对程序的性能有显著影响。
3. GNU 编译器集合(GCC)概述
GCC 是一组编译器包,设计为通用、灵活的编译单元。最初它被称为 GNU C 编译器,后来扩展以支持其他语言。目前,GCC 支持 17 种语言前端,以及 63 种架构的后端,这些后端分为 3 类:
超级会员免费看
订阅专栏 解锁全文
890

被折叠的 条评论
为什么被折叠?



