- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, we have seen the 5X speedup too, but it is not typical.

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