Compiler 14 problem?

Compiler 14 problem?

Portrait de lklawrie

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?

Linda
8 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Steve Lionel (Intel)

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.

Steve
Portrait de lklawrie

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

Linda
Portrait de lklawrie

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

Linda
Portrait de Tim Prince

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.

Portrait de lklawrie

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

Linda
Portrait de Steve Lionel (Intel)

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.

Steve
Portrait de lklawrie

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.

Linda

Connectez-vous pour laisser un commentaire.