ATOM程序优化利器

作者: Yanqing Wang (Intel) (99 篇文章) 日期: 十一月 23, 2009 在 4:59 下午

Intel编译器是著名的X86框架优化编译器,充分使用它的优化选项不仅能够使程序性能更好,而且也能同时节省电力,这个对于笔记本、手持设备等都是有显著意义的。Intel编译器现在的版本是11.X,它提供了针对ATOM丰富编译选项。

本文将按照ATOM的特点,对Intel编译器的优化选项依次说明。一方面强调重点,另一方面也便于读者理解。
首先,ATOM CPU是顺序执行的(现在主流的CPU都是乱序执行的),对于乱序执行优化的程序,在ATOM平台反而会有适得其反的效果,并且耗电。这就要求相关的应用程序在运行期有一个自动设别平台的能力,我们可以通过CPUID指令来实现它。对于编译器而言,问题的关键是如何添加正确的编译选项呢?(Windows平台)和axSSE3_ATOM(Linux平台)编译选项粉墨登场,它告诉编译器对源代码进行ATOM方式的优化。

其次,ATOM CPU支持SSE3指令,那么QaxSSE3_ATOM和axSSE3_ATOM同时也要求编译器对源代码进行SSE3指令的优化。

再则,如果程序有大量的big endian和little endian之间转化的程序块,Intel编译器也提供了/Qinstruction:movbe(Windows平台)和-minstruction=movbe(Linux平台)的编译选项,它能够快速高效的提高数据转化能力。

最后,对于运行环境,编译时我们还需要考虑操作系统是否是为IA32还是IA64,比如说通过-m32或者-m64来定义。它结合QaxSSE3_ATOM和axSSE3_ATOM编译选项,对于提高代码的优化成效是很有帮助的。

对于大多数程序员而言,这些编译选项设置还是相对比较繁琐的,那么Intel编译器提供了一个QxSSE3_ATOM(Windows平台)和xSSE3_ATOM(Linux平台)的编译选项来搞定上面的所有事情。它的好处非常的明了,就是简单,能够满足绝大多数的应用程序。缺点就是无法对IA32,IA64,movbe等指令ON/OFF的控制,无法手动在代码尺寸,速度等方面做一个恰当的应用平衡。

小结:
1. QxSSE3_ATOM(Windows平台)和xSSE3_ATOM(Linux平台)编译选项是能够满足ATOM平台的常规优化能力。对于喜欢手动配置优化能力的程序员,可以考虑使用axSSE3_ATOM,instruction等组合来完成。
2. 本文仅仅提供了编译器端的ATOM优化设置,还有一个非常关键的优化点是:如何利用好ATOM平台的多线程能力?
3. 对于其他的优化选项,比如说ipo在ATOM平台依然是有效的,所以应该结合它们一起做一个全盘的优化,达到性能的最佳。

分类: 移动技术, 英特尔® 软件网络 2.0
标签:,

如需了解英特尔软件产品相关的性能和优化选项,请参阅优化注意事项.

 评论 (12)

2009年11月24日 17:50


林海波
好像很不错啊,我想获得积分啊
2009年11月24日 21:33


sb
我想说, 但是不知道怎么说是好!
2009年11月25日 01:00


石明
貌似很高深
2009年11月25日 07:49


过路
楼上的,说不出是不是很不爽,哈哈。

2009年11月25日 22:21

Yanqing Wang (Intel)
Yanqing Wang (Intel)总分:
10,048
黑带
使用Intel编译器能够很好的优化ATOM平台,推荐使用它来编译相关的应用程序。
对于ATOM平台主要的几个优化考量点是:
1. ATOM支持Intel超线程技术,所以如何利用好多线程特性是性能提升的重要点。
2. ATOM指令是循序执行的,对于乱序优化的程序,在ATOM平台是会性能变差,并且耗电。
3. ATOM支持SSE3指令集,所以在程序关键段中,应该使用SSE3指令集来优化程序,以达到性能的提升,这个对于节电也是很有帮助的。
4. Intel编译器对于大型程序,一般都有10%或者更高的整体性能提升,在ATOM平台上,最后的全局优化也是有意义的。
2009年11月25日 23:07


好奇人
难道微软要去吃屎了?
2009年11月26日 19:23


thinker
微软的编译器主要考虑平衡,不会针对对某个特定平台做太多优化的。
2009年11月30日 03:22

方亮 (Intel)
方亮 (Intel)总分:
2,935
注册用户
如果针对具体工作流特性使用pgo的话,应该还能获得一些性能的提升
2009年11月30日 17:26

Yanqing Wang (Intel)
Yanqing Wang (Intel)总分:
10,048
黑带
多谢方亮补充!是的,通过pgo的优化能够再次提升性能。从你的经验来看,大概有多大的性能提升?
2009年12月01日 23:52

Wu Xiaochang 吴晓昶 (Intel)
Wu Xiaochang 吴晓昶 (Intel)总分:
1,330
棕带
写的不错,呵呵!
2009年12月02日 05:13


ATOM
没有关于如何用GCC优化ATOM的经验,也写一些!
2009年12月27日 18:12

Yanqing Wang (Intel)
Yanqing Wang (Intel)总分:
10,048
黑带
好,过段时间写一下如何在GCC下优化ATOM。

 引用 (2)


 写评论  

欲获得技术支持,请访问软件支持页面.
姓名 (必填)*

电子邮件 (必填,不在本页面显示)*

您的 URL (可选)


评论*