Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29283 Discussions

CVF 6.6c code significantly faster than IVF 8.1 code

ferch
Beginner
751 Views
There has been some talking about this issue in the past but I cannot find any solution to it in the forum.

We have compiled our code under windows using cvf 6.6c and ivf 8.1 both with full speed optimization. The ivf code had exactly double the execution time of the code generated with cvf 6.6c. Under Linux on the other hand the ivf 8.1 compiler generated a code that was 13% faster than the cvf code under windows (all benchmarks were conducted on the same machine). Why is the windows code so slow? Is there any solution to this problem? We are seriously disappointed by this behavior.

We have also tried all kinds of other combinations of optimization options under windows but this has not lead to any speedup.
0 Kudos
5 Replies
Steven_L_Intel1
Employee
751 Views
Without seeing the code, there's nothing I could say. Please submit an example to Premier Support and we'll be glad to take a look.
0 Kudos
Intel_C_Intel
Employee
751 Views
Hello. The best way to achieve maximum performance is to write code that is easily optimized by the compiler. My experience is that switching compiler only (without doing anything else), almost never gives a large speedup. Thus to take full advantage of the new technolgy that is included in IVF8.1, please use compiler diagnostics (like for example /Qvec_report:3) and also Intel VTune to understand what is happening. Based on the results, you will be able to help the compiler, and achieve a much higher speedup. What I am trying to say is that "human+compiler" is better than "compiler". There are many new advanced features in IVF like PGO (Profile Guided Optimization), and it takes some time to find out which features that is suitable for your program. In certain cases I have seen that CVF initially was better at optimizing code than IVF, as the implementation was "hardware-unfriendly". However, when the implementation was fixed IVF was running much faster than CVF. Lars Petter Endresen
0 Kudos
Steven_L_Intel1
Employee
751 Views
That is certainly true, but in almost all the comparisons we have done, with a variety of benchmark programs, IVF is, on average, 5-25% faster than CVF. There are some programs where CVF does better - but they are rare. Again, we'd be very interested in seeing examples.
0 Kudos
Intel_C_Intel
Employee
751 Views
Hello. Yes, 5-25% speedup is what I have typically seen in the applications I have checked. But I have also seen a some applications with a speedup of around 5 times (IVF relative to CVF), but this is only possible for certain problems that are recoded in a hardware-friendly manner. Lars Petter
0 Kudos
Steven_L_Intel1
Employee
751 Views
Yes, we have seen the 5X speedup too, but it is not typical.
0 Kudos
Reply