Compiler 14 problem?

Compiler 14 problem?

From someone who is working with our code:

In debugging another project I discovered that the Intel Fortran automatic vectorizer is apparently broken in current 13.1 and 14.0, emitting bad code for some loop constructs. (I am only using the Windows versions so I can't say whether the Linux compilers are also broken but I would expect vectorizer code to be h/w specific but cross-platform.) The vectorizer is active automatically at /O2 and /O3 optimization level. I have disabled it with the /Qvec- option. I thought this might help you avoid some debugging hours at some point.

It also sounds like 14.0 is not production-ready with some vital fixes in the works for the first update, so it might be best to defer on switching to it.

From me: Is this true?  Should we just go back to V13?

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Sorry, there's nothing we can do with such vague descriptions. We extensively beta-tested 14 and ran tens of thousands of our own tests. To say that the vectorizer is "broken" in two releases is not a correct statement. Please ask your colleague to provide us with a test case, and we'll be glad to look at it.

Retired 12/31/2016

The only indication I have is that answers changed between the two compiler releases -- but I think others are showing different examples.

I tried the /Qvec- as suggested in a different thread.  Only one file had any differences out of our 400+ files.  No time impact.

I found that /Qvec- has no effect where !dir$ simd is in effect; in that case reducing to -O1 is more likely to surface differences associated with vectorization.

Don't think we have any !dir$ simd in our code.  would some compiler setting also set that?

No - if you're not using directives to force vectorization, then it's not an issue.  I did get a test case from one of your coworkers.

Retired 12/31/2016

Yes, I saw that.  Same results (diffs) with Opt=1, Qvec-.  Oddly, they look similar to a time in the past when we had to disable inline functions because of some other compiler switch that we needed for the c libraries that are included.  Dunno if they ARE the same, just look it -- I will need the developer of that module to take a look.

Leave a Comment

Please sign in to add a comment. Not a member? Join today