- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
It is a little difficult to understand your precision problems without a specific example. Our company has just now completed the transition to Intel Fortran. To avoid precision inconsistencies, we did the following:
- Transfered all code to 64 bit double precision.
- Compiled using /real_size:64
- Compiled using /fpconstsant
- Compiled using /QxN (you can also use /QxW)
- Scanned disassemled executable for single precision calculations such as "mulps"to detect remaining single precison statements that had to be fixed.
Now our softwareis 100% double precision, only statements like "mulsd" and "mulpd" are present everywhere in the disassembled executable. When this was in place, we saw that precision problems vanished completely.
Lars Petter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sounds strange. What kind of program is it? Floating point intensive or memory intensive? Is it Fortran 77 or Fortran 90? How many source lines? Many independent Fortran modules? The reason I ask is that the way to compile may be dependent on the problem at hand. For example selecting optimization level/O1, /O2 or /O3 may be tricky. Sometimes /O1 is better than /O2 and /O3. Also using PGO may be beneficial. Have you tried that?
Lars Petter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Yes, we recommend -xW for current AMD processors. We'd be very interested in seeing an example program that gives different results on AMD and Intel processors. It could be that the AMD processor you are using incorrectly executes SSE2 instructions.
- In 9.1, we recommend using -"fp_model precise" instead of -mp - the performance penalty will be less.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As the -mp and -mp1 options (Windows spelling -Op -Qprec) are deprecated (not well explained in the docs), you should prefer the -fp: options. Those may help avoid confusion between linux and Windows options. -QxW -fp:precise (linux -xW -fp-model precise) should avoid the automatic promotion of all expressions to double precision, by use of x87 instructions (SSE2 on Windows x64). This option should adhere more predictably to language standards. It prevents optimizations such as vectorized sum reduction, so as to prevent the associated numerical variations.
Beginning with the most recent 9.1 compiler, -fp:precise implies -Qftz- for IEEE gradual underflow compliance. If you don't want that, you can follow with -Qftz (linux -ftz).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
-xN includes a few additional optimizations beyond -xW, such as vectorization of MINVAL/MAXVAL (maybe soon also MINLOC/MAXLOC) and optimization of integer divide. However, it disallows running on AMD.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Where can I download the Intel Fortran 9.1.033 version?
Thanks a lot!
Deng
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you are using a non-commercial license, you will have to wait until sometime in August before obtaining 9.1.
If you have purchased a regular license, download from Intel Premier Support as above.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page