Some vs2005 option tests back
(L) [2007/07/19] [Ono-Sendai] [Some vs2005 option tests] Wayback!Optimisation Option Results in Visual Studio 2005
[LINK http://www.indigorenderer.com/blog/?p=57]
Thought someone might find this interesting.
_________________
[LINK http://indigorenderer.com/]
(L) [2007/07/19] [Phantom] [Some vs2005 option tests] Wayback!You may want to add results for the Intel compiler. By the way, the 10.0.x version of that compiler is out, and it produces significantly better code than 9.0.xx, which already performed quite a bit better than VS2005, at least for my code. The 10.0.x seems to deliver about 10% extra performance (over 9.0.xx).
_________________
--------------------------------------------------------------
Whatever
(L) [2007/07/19] [Ono-Sendai] [Some vs2005 option tests] Wayback!Hi Phantom,
I don't have the Intel compiler [SMILEY Smile]
_________________
[LINK http://indigorenderer.com/]
(L) [2007/07/19] [Phantom] [Some vs2005 option tests] Wayback!It's a free download. All you have to do is get a new e-mail address every 30 days. [SMILEY Wink]
_________________
--------------------------------------------------------------
Whatever
(L) [2007/07/19] [Ono-Sendai] [Some vs2005 option tests] Wayback!lol... true [SMILEY Smile]
_________________
[LINK http://indigorenderer.com/]
(L) [2007/07/19] [tbp] [Some vs2005 option tests] Wayback!I'd advise caution regarding icc10, it's quite fragile atm. It's worse than icc9 on linux x86-64 (which was less than stellar anyway) and quite bizarre on 32bit (say win32). For example it fails to inline templated ctors (even if forced to with no warning, also has issues with arrays), emits weird sequences for ie _mm_set1_ps on some targets and definitely auto-vectorizes much less than icc9.
So, depending on idioms used in your code, your mileage will definitely vary.
note:
I'm not the only one to have mixed feelings, see [LINK http://softwarecommunity.intel.com/isn/Community/en-US/forums/1016/ShowForum.aspx]
I'm so sad i've missed that 2nd Life Q&A [SMILEY Wink]
_________________
May you live in interesting times.
[LINK https://gna.org/projects/radius/ radius] | [LINK http://ompf.org/ ompf] | [LINK http://ompf.org/wiki/ WompfKi]
(L) [2007/07/19] [Phantom] [Some vs2005 option tests] Wayback!There's definitely issues with ICC10, I get weird errors that are gone when I switch back to ICC9.1 (which is quite easy, thankfully). When it works it's very fast though. I now use three build configurations: Debug (I switch back to VS2005 for that), Draft (ICC9.1) and Release (ICC10.0). Debug does a full rebuild in about 20 seconds, Draft is a tiny bit slower (~30s) and Release takes ages. When I project still compiled in 'Draft' mode under ICC10, the difference between 'Draft' and 'Release' was about 0.5% (so, not really worth the extra build time). Difference between Release and VS2005 release builds is huge.
I guess my problems are somewhat reduced by the fact that I don't rely on the compiler for my SSE code, it's all done manually already. Beats me where ICC10 manages to get an extra 10% from; perhaps smarter prefetching? That's an area that I definitely did not explore yet.
Off-topic: My paper for RT07 just got accepted! Woohoo!
_________________
--------------------------------------------------------------
Whatever
(L) [2007/07/19] [tbp] [Some vs2005 option tests] Wayback!Even for purely intrinsic based stuff you got to be careful if only because, apparently, their inliner could use a heuristic tweak or two; see that interesting compiler generated default ctor for a trivial structure (so the fix is to turn it into a non POD by adding a no-op default ctor which is force-inlined, yay!)
(L) [2007/07/21] [lycium] [Some vs2005 option tests] Wayback!interesting bench results! i've never actually managed to work out how to make pgo do anything useful btw, so that's quite motivating.
regarding sse2 being inferior to sse1, that's pretty weird... perhaps a quirk of the p4 arch? sse2 codegen is usually significantly faster for me.
(L) [2007/07/21] [lycium] [Some vs2005 option tests] Wayback!would be interesting to see the results :)
hey btw, i'm in new zealand on the 26th, might be knocking on your door before too long :P will be touring a bit next month with a friend from taiwan (whose dad lives in auckland, brother of matsta from your forums, etc)... dunno if we'll do ChC on that particular mission, but i still would like to visit and chat a bit about monte carlo things / indigo / etc someday :)
(L) [2007/09/26] [cignox1] [Some vs2005 option tests] Wayback!I'm happy to read that the sse2 vs. sse1 issue was not only a problem with my code [SMILEY Smile]
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!sse2 still gives noticably better results with my code on k8.
nick, any new results with the core 2 quad?
(L) [2007/09/26] [ingenious] [Some vs2005 option tests] Wayback!Well, I've been having mixed feelings too... Half an year ago when I told you that ICC produces 2 times slower code than VC8, you nearly crucified me. ICC is very bad with templates  [SMILEY Sad] And no, my code was no way optimized to VC8.
A friend of mine at the same time was also writing a ray tracer. ICC was giving better performance... until he added a little bit of templates... How does GCC handle templates btw?
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!i nearly crucified you?! ehm i've never once used icc and have really limited experience with templates... sure it was me?
(L) [2007/09/26] [jogshy] [Some vs2005 option tests] Wayback!A question... does the intel compiler optimize well for and AMD or a VIA?
_________________
I know I ask too much... but i'm on panic mode and there is no panic button to press [SMILEY stick out tongue]
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!it has been substantiated by tbp that amd processors run generic system library code when running icc-compiled binaries; there's a thread on the forum (fuck_off_t is the salient term you can search for ;)) where he gives a simple fix for this, however intel have no doubt patched that by now.
that aside, sometimes performance increases compared to msvc are seen on amd processors, which shouldn't come as much of a surprise because icc is generally really aggressive with the optimisation assumptions it makes (sometimes leading to erroneous code generation). as for via... why is that mentioned in context with performance? :P
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!i did the search for "fuck_off_t" (amazing what sticks in memory, no?) and found the thread: [LINK http://ompf.org/forum/viewtopic.php?t=113]
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!small tangent: it's surprising to me that incredibuild has (afaik) a monopoly on the distributed compilation market; turning a dependency graph into a build graph is hardly rocket science (basic graph theory), and while i'm sure there are complications the market is surely there with all the small clusters of multicore computers around these days... now if only microsoft saw fit to include a real improvement like that in their improvement-stricken "orcas" release.
oh, and this is only true with msvc / icc, iirc gnu make (or some variant) can split the building across multiple threads.
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!this is where my *nix ignorance begins to show [SMILEY Embarassed] when i was building gcc, it used multiple threads somehow... i assumed it was core functionality. well, now i know [SMILEY Wink]
one day i'll make that rite of geek passage away from redmondland, i promise...
(L) [2007/09/26] [Ho Ho] [Some vs2005 option tests] Wayback!Oh, and GNU make can compile several files in parallel also, just add -jN to it [SMILEY Smile]
_________________
In theory, there is no difference between theory and practice. But, in practice, there is.
Jan L.A. van de Snepscheut
(L) [2007/09/26] [lycium] [Some vs2005 option tests] Wayback!that's the one i used, and alluded to in my original post :)
(L) [2007/09/26] [jogshy] [Some vs2005 option tests] Wayback!Btw... The VS2008 gonna include multicore compilation... that should increase a bit the compilation speed...
But I hope Microsoft will add distributed compilation in a near future.
_________________
I know I ask too much... but i'm on panic mode and there is no panic button to press [SMILEY stick out tongue]
(L) [2007/09/27] [ingenious] [Some vs2005 option tests] Wayback!When can we expect VS2008 to be released actually? Any official announcements? I just can't wait anymore [SMILEY Smile]
(L) [2007/09/28] [lycium] [Some vs2005 option tests] Wayback!ohno, here comes that old debate again :|
(L) [2007/09/28] [davepermen] [Some vs2005 option tests] Wayback!c# is about as performant except it can't use simd (for discussed reasons in another thread.. [SMILEY Smile])
so you can very well use it to develop, the only thing you really need to replace are the most inner loops, the core. the rest runs fine and dandy in c#.
and even while i target games/realtime, it doesn't mean i have to stay lowlevel to develop. developing a framework, trying algorithms, logic, ideas, and the way stuff works together is all much better done in a language wich is not as complicated and takes that much time to write stuff in as c++ (or asm). so the low-level optimised backend is only needed from time to time, to gain more speed. but most development is done in c# (several other apps i'm coding are 100% in c# and work great, even on old and slow systems).
the problem is not that linux is in any ways bad or inferior. but that windows is actually good, and no inferior eighter. comfort is a requirement, and vista has a high standard in comfort. and is easy to use, and flexible. and has awesome pen support. (i work on a tablet).
and actually, i get most of the low-level infos for windows just as well as you for linux. man-pages are great, but similar infos are available for windows. but just as, if you want to understand linux, you have to dive deeper into it, you have to in windows. most dont (want to), and thus, windows is irritating, complicated, strange, bad, etc for them. it's just cool to blame them [SMILEY Smile] i know quite some people that get forced on open pc's to ubuntu, and they just bitch around that as well.
sheep, people are sheep.. blind ones, actually [SMILEY Smile]
(L) [2007/09/28] [davepermen] [Some vs2005 option tests] Wayback!at least we're filling your forum with useful debates [SMILEY Smile]
i mean, as long as the topic stays on a high standard (i know, i should get banned then), it's all useful for the forum.
(L) [2007/09/28] [davepermen] [Some vs2005 option tests] Wayback!it can't be heaven if it's c++.. [SMILEY Smile]
(L) [2007/09/28] [davepermen] [Some vs2005 option tests] Wayback!hm.. last time i used it, braces worked perfectly in all languages having braces in vs.. [SMILEY Smile]
(L) [2007/09/28] [davepermen] [Some vs2005 option tests] Wayback!hm.. have to try it in the 2008 beta.. [SMILEY Smile]
and well, for c# everything works perfectly.. but that's by design, so it's logical. and as it's much simpler to parse than c++, features in ide's are much more easy to implement.
i actually like #develop quite much, too [SMILEY Smile] of course not as great as vs when it comes to debugging (uhh.. vc# and threaded debugging is great [SMILEY Smile]), but for simple stuff it's nice.
(L) [2007/09/28] [Lynx] [Some vs2005 option tests] Wayback!Wow, visual studio 2008 will be able to compile sources in parallel...it really couldn't do that yet?
I am doing that since like over 4 years with make or scons... [SMILEY Wink]
The latter even works with MSVC on windows.
(L) [2007/09/28] [Lynx] [Some vs2005 option tests] Wayback!Huh? Oh, well it can use the visual C++ compiler out of box (i.e. it knows executable names, command line syntax etc.) but does not have anything to do with the Visual Studio GUI...
No idea if you can make the IDE launch scons, i'm no big fan of IDEs...
(L) [2007/09/30] [ingenious] [Some vs2005 option tests] Wayback!Well, tbp, I'm only saying that ICC performs bad with templates. And I conclude that based on my personal and two other people's experience. I believe that ICC is better than MSVC in optimization in general, but apparently you have to take some piece of heavily templated code and see for yourself.
And I should say I'm quite unhappy with this behavior.
(L) [2007/09/30] [tbp] [Some vs2005 option tests] Wayback!Like i said icc has, at least, a few known benign (mostly failure to inline trivial ctors) defects with no workaround which aren't hard to trigger (ie aversion for arrays) and therefore more likely in heavily templated code; they're pretty easy to spot, but then there's no fix anyway... Otherwise i've seen nothing but decent output.
So, excuse me if i don't subscribe to the 'ICC performs bad with templates' club yet.
PS: to be clear, compilers are expected to have bugs benign or not, it's all in the way they get documented & resolved; and in this regard i can't say i've been impressed by Intel so far.
_________________
May you live in interesting times.
[LINK https://gna.org/projects/radius/ radius] | [LINK http://ompf.org/ ompf] | [LINK http://ompf.org/wiki/ WompfKi]
back