有关Inter C++优化的几个问题

micr0soft 2008-08-29 10:03:01
由于我的程序有大量的循环和浮点运算,但是我发现把优化选项设置了 /O3 /G7后速度提升并不明显。考虑到程序还要再其他CPU上运行所以没敢贸然设置其他我不了解的优化参数,请问还有其他优化的参数可选吗?
...全文
107 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
micr0soft 2008-09-03
  • 打赏
  • 举报
回复
谢谢专家的回答,我使用了/QaxP后发现速度明显上升了 :)
intel_iclifort 2008-09-03
  • 打赏
  • 举报
回复

如果您已经用过了 /Qx 或者 /Qax 选项,想知道循环为什么没有能够被优化,可以读一下编译器生成的向量化报告,看看到底是什么原因。

用法: /Qvec-report5 (只报告未被优化的循环和原因)

Intel编译器缺省用的是 /Qvec-report1,只报告已被成功向量化的循环

这个是高级用法了,建议对优化很感兴趣的尝试一下。:)



intel_iclifort 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 micr0soft 的回复:]
1、/QaxP 和 /G7 有什么区别,同时使用有没有冲突?
[/Quote]
/G7 已经不推荐使用了,它和选项 /xP 等效,都能够针对支持Streaming SIMD Extensions 3 (SSE3)指令的处理器进行优化。

而使用 /QaxP 选项,在代码可能优化的情况下编译器会生成两条执行路径,一条是针对通用IA-32处理器的 (即 a 代表),而另外一条路径是针对支持SSE3指令的处理器 (即 xP 代表). 执行时会自动根据当前的处理器选择合适的执行路径运行。

[Quote=引用 2 楼 micr0soft 的回复:]
2、使用/QaxP 优化的程序是否可以在其他CPU比如PII上运行?
[/Quote]

如果用选项 /QaxP 可以,而 /xP 就不行了。原因见上面对第一个问题的回答
intel_jeff 2008-09-02
  • 打赏
  • 举报
回复
可以加上IPO、向量化试试。
IPO开关为/Qipo, 向量化则要根据你的目标CPU选择不同的向量化开关,如/Qax系列和/Qx系列开关
micr0soft 2008-09-02
  • 打赏
  • 举报
回复
感谢专家的解答,我还有两个问题需要问一下:
1、/QaxP 和 /G7 有什么区别,同时使用有没有冲突?
2、使用/QaxP 优化的程序是否可以在其他CPU比如PII上运行?

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧