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?

Linda
8 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di 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

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

Linda

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

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?

Linda
Ritratto di 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

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

Accedere per lasciare un commento.