回 帖 发 新 帖 刷新版面

主题:IVF中的Qipo与QxP 的问题

用的是IVF,在编译优化的时候用到了Qipo(过程间优化)和QxP(矢量化优化),但奇怪的是这两个优化不能一起用,只要一起用就会出现很怪异的结果。我用IVF很长时间了,这两个优化也用了很长时间了,从来没遇到这样的问题,请问高手这是问什么呢?

回复列表 (共5个回复)

沙发

版本?
按理说Qipo是跨obj优化(使得函数更好的内联) QxP后来一般都作为QxSSE之类的,属于自动向量化,一般情况下不会起到干扰。当然不排除编译器的bug。

板凳

有可能是因為在特定的情況下,內聯后向量化的程序會有問題。
比如程序原本就有缺陷,如果沒有優化則程序可能還可以正常使用,但優化后程序就完蛋了。
我的程序原來有這樣的問題,后來發現是變量沒有初始化導致。。。
fortran語言對沒初始化的變量的使用默許,導致編譯器也很難斷定這是不是WARNING。。。

3 楼

我又查了一下,原因是因为一个数组,在调用一个子程序前这个数组的值是对的,但在调用之后就变成了很奇怪的值。用/QxP 的时候根本就没对这个子程序有任何矢量化。数组初始化我也检查了还是这个问题。能不能有高手再提供点线索?

4 楼

單獨用Qipo呢?
向量化并不一定對這個數組操作才會影響它,如果向量化他身邊的數組后,但又做了數組越界的操作則有可能會導致計算數據出錯。

5 楼

问题已找到,是在调用那个子程序的时候对应的维数弄错了,呵呵,看了还是自己的错,和人家IVF编译器没关系,谢谢各位了

我来回复

您尚未登录,请登录后再回复。点此登录或注册