主题:IVF中的Qipo与QxP 的问题
baccle
[专家分:190] 发布于 2011-04-03 21:58:00
用的是IVF,在编译优化的时候用到了Qipo(过程间优化)和QxP(矢量化优化),但奇怪的是这两个优化不能一起用,只要一起用就会出现很怪异的结果。我用IVF很长时间了,这两个优化也用了很长时间了,从来没遇到这样的问题,请问高手这是问什么呢?
回复列表 (共5个回复)
沙发
dongyuanxun [专家分:7180] 发布于 2011-04-03 22:22:00
版本?
按理说Qipo是跨obj优化(使得函数更好的内联) QxP后来一般都作为QxSSE之类的,属于自动向量化,一般情况下不会起到干扰。当然不排除编译器的bug。
板凳
cgl_lgs [专家分:21040] 发布于 2011-04-04 02:13:00
有可能是因為在特定的情況下,內聯后向量化的程序會有問題。
比如程序原本就有缺陷,如果沒有優化則程序可能還可以正常使用,但優化后程序就完蛋了。
我的程序原來有這樣的問題,后來發現是變量沒有初始化導致。。。
fortran語言對沒初始化的變量的使用默許,導致編譯器也很難斷定這是不是WARNING。。。
3 楼
baccle [专家分:190] 发布于 2011-04-04 10:19:00
我又查了一下,原因是因为一个数组,在调用一个子程序前这个数组的值是对的,但在调用之后就变成了很奇怪的值。用/QxP 的时候根本就没对这个子程序有任何矢量化。数组初始化我也检查了还是这个问题。能不能有高手再提供点线索?
4 楼
cgl_lgs [专家分:21040] 发布于 2011-04-04 18:49:00
單獨用Qipo呢?
向量化并不一定對這個數組操作才會影響它,如果向量化他身邊的數組后,但又做了數組越界的操作則有可能會導致計算數據出錯。
5 楼
baccle [专家分:190] 发布于 2011-04-04 22:07:00
问题已找到,是在调用那个子程序的时候对应的维数弄错了,呵呵,看了还是自己的错,和人家IVF编译器没关系,谢谢各位了
我来回复